Seite 5 von 5 ErsteErste ... 345
Ergebnis 41 bis 45 von 45

Thema: Datenbankprojekt

  1. #41
    andetsa ist offline Neuer Benutzer
    Registriert seit
    21.02.2010
    Beiträge
    18

    Standard

    Dafür bin ich auch sehr dankbar. Kannst du mir Quellen sagen, wo ich mich informieren kann? Literatur bzw. gute Quellen im Web? Die Doku auf der offiziellen Seite ist nicht besonders hilfreich. Da steht zwar alles drin, aber das ist zu theoretisch und ohne Anwendungsbeispiele.

    Mit PL/PGSQL bin ich aber zumindest auf dem richtigen weg oder?
    Geändert von andetsa (07.03.2010 um 12:11 Uhr)

  2. #42
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von andetsa Beitrag anzeigen
    Dafür bin ich auch sehr dankbar. Kannst du mir Quellen sagen, wo ich mich informieren kann? Literatur bzw. gute Quellen im Web? Die Doku auf der offiziellen Seite ist nicht besonders hilfreich. Da steht zwar alles drin, aber das ist zu theoretisch und ohne Anwendungsbeispiele.

    Mit PL/PGSQL bin ich aber zumindest auf dem richtigen weg oder?
    Ja. Ich hab ganz gerne auf Varlena, LLC | PostgreSQL General Bits Newsletter geschmöckert, leider hat Elein Mustain da wohl das Interesse verloren. Ansonsten vielleicht einfach mal mit der Doku anfangen und versuchen, ein Problem anzugehen. Ich finde die Doku recht gut und praktisch.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #43
    andetsa ist offline Neuer Benutzer
    Registriert seit
    21.02.2010
    Beiträge
    18

    Standard

    So, ich melde mich nach längerer Zeit mal wieder zu Wort Vielleicht interessiert es ja jemanden, der den Thread verfolgt hat.

    Andreas hatte mir ja freundlicherweise eine PL/PGSQL-Funktion gebastelt, die prüft, ob ein Wert in einer Spalte schon vorhanden ist. Falls ja, sollte der Wert die bereits vorhandene ID erhalten, falls nicht sollte eine neue generiert werden. Das ganze sah dann wie folgt aus:

    Code:
    CREATE OR REPLACE FUNCTION keywords_check(in value text) RETURNS int AS $$ declare ret int;
        
        BEGIN 
        
        INSERT INTO keywords (keywords) SELECT $1 WHERE NOT EXISTS (SELECT keywords FROM keywords WHERE keywords=$1);
        
        SELECT INTO ret keywords_id from keywords where keywords=$1;
        
        RETURN ret;
        
        END;
        
    $$ language plpgsql;
    Die Funktion prüfte nur eine Spalte, ich musste jedoch mehrere Spalten prüfen, ob der Datensatz schon existiert. Nach ein bisschen Lektüre hatte ich dann eine Funktion die mehrere Spalten auf einmal prüft, und zwar diese:

    Code:
    CREATE OR REPLACE FUNCTION zeitschrift_check(in value text,in value text,in value text) RETURNS int AS $$ declare ret int;
        
        BEGIN
        
        INSERT INTO zeitschrift (name,kurzname,issn) SELECT $1,$2,$3 WHERE NOT EXISTS (SELECT name,kurzname,issn FROM zeitschrift WHERE name=$1 AND kurzname=$2 AND issn=$3);
        
        SELECT INTO ret zeitschrift_id from zeitschrift where name=$1 and kurzname=$2 and issn=$3;
    
        RETURN ret;
        
        END;
        
    $$ language plpgsql;
    So meintest du das Andreas, oder?

    Gruß
    Geändert von andetsa (08.04.2010 um 12:47 Uhr)

  4. #44
    andetsa ist offline Neuer Benutzer
    Registriert seit
    21.02.2010
    Beiträge
    18

    Beitrag

    Ich versuche vergeblich eine Abfrage zu bauen, die sowohl die derzeitige Sequenz einer anderen Tabelle erfasst und gleichzeitig über die unten genannte Funktion prüft ob 3 Werte schon in der Tabelle stehen. Wie kann ich das verknüpfen? Danke schonmal!

    Code:
    INSERT INTO ausgabe (fk_zeitschrift_id,heft_nr,jahr,jahrgang) VALUES (currval('zeitschrift_zeitschrift_id_seq'), SELECT * FROM ausgabe_check ('2','1999','82'));
    Code:
    CREATE OR REPLACE FUNCTION ausgabe_check(in value text,in value text,in value text) RETURNS int AS $$ declare ret int;
    	
    	BEGIN
    	
    	INSERT INTO ausgabe (heft_nr,jahr,jahrgang) SELECT $1,$2,$3 WHERE NOT EXISTS (SELECT heft_nr,jahr,jahrgang FROM ausgabe WHERE heft_nr=$1 AND jahr=$2 AND jahrgang=$3);
    	
    	SELECT INTO ret ausgabe_id from ausgabe where heft_nr=$1 and jahr=$2 and jahrgang=$3;
    
    	RETURN ret;
    	
    	END;
    	
    $$ language plpgsql;

  5. #45
    andetsa ist offline Neuer Benutzer
    Registriert seit
    21.02.2010
    Beiträge
    18

    Standard

    Kann mir da keiner helfen? Wie könnte ich das realisieren?

Seite 5 von 5 ErsteErste ... 345

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum