Ergebnis 1 bis 5 von 5

Thema: BEFORE INSERT Trigger zeigt keine Wirkung :/

  1. #1
    Linuxhippy ist offline Neuer Benutzer
    Registriert seit
    11.04.2010
    Beiträge
    8

    Standard BEFORE INSERT Trigger zeigt keine Wirkung :/

    Hallo,

    Ich möchte mit einem Trigger einer Spalte "pos" den zweifachen Wert der "id" Spalte zuweisen und verwende dafür folgenden ON INSERT trigger:

    Code:
    CREATE FUNCTION set_pos() RETURNS trigger AS $emp_stamp$
        BEGIN
          NEW.pos:=NEW.id*2;
          RETURN NEW;
        END;
    $emp_stamp$ LANGUAGE plpgsql;
    
    CREATE TRIGGER kladde_insert_pos BEFORE INSERT ON Startkladde
        FOR EACH ROW EXECUTE PROCEDURE set_pos();
    Leider funktioniert das ganze nicht, in Startkladde.pos steht immer jener wert, den ich eingefügt habe.

    Habts ihr eine Idee was ich falsch mache?

    Danke im Vorraus, Clemens

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von Linuxhippy Beitrag anzeigen
    Hallo,

    Ich möchte mit einem Trigger einer Spalte "pos" den zweifachen Wert der "id" Spalte zuweisen und verwende dafür folgenden ON INSERT trigger:

    Code:
    CREATE FUNCTION set_pos() RETURNS trigger AS $emp_stamp$
        BEGIN
          NEW.pos:=NEW.id*2;
          RETURN NEW;
        END;
    $emp_stamp$ LANGUAGE plpgsql;
    
    CREATE TRIGGER kladde_insert_pos BEFORE INSERT ON Startkladde
        FOR EACH ROW EXECUTE PROCEDURE set_pos();
    Leider funktioniert das ganze nicht, in Startkladde.pos steht immer jener wert, den ich eingefügt habe.

    Habts ihr eine Idee was ich falsch mache?

    Danke im Vorraus, Clemens
    Wie ist der Name Deiner Tabelle, Startkladde oder "Startkladde"?

    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. #3
    Linuxhippy ist offline Neuer Benutzer
    Registriert seit
    11.04.2010
    Beiträge
    8

    Standard

    Zitat Zitat von akretschmer Beitrag anzeigen
    Wie ist der Name Deiner Tabelle, Startkladde oder "Startkladde"?
    Einfach nur Startkladde, ohne Anfürungsstriche. Aber mich verwirrt die Frage zugegebenermaßen etwas

    lg Clemens

  4. #4
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von Linuxhippy Beitrag anzeigen
    Einfach nur Startkladde, ohne Anfürungsstriche. Aber mich verwirrt die Frage zugegebenermaßen etwas

    lg Clemens
    Nun, PG unterscheidet nicht zwischen Groß- und Kleinschreibung, es wird alles zu Kleinschreibung konvertiert, was nicht expliziet durch "ABC" in Großbuchstaben definiert wurde.
    Daher meine wilde Vermutung, daß die Tabelle vielleicht in der Tat mit S und nicht mit s beginnt. In diesem Falle würde der TRIGGER natürlich nicht feuern.

    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

  5. #5
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.056

    Standard

    Wenn der Tabellenname falsch geschrieben wäre, könnte der Trigger schon nicht angelegt werden.
    Das würde in einer Fehlermeldung enden.

    Kannst du in deiner Triggerfunktion mal eine Debuggingausgabe ausgeben? Mit RAISE NOTICE?
    Dann siehst du ja, ob der Trigger überhaupt aufgerufen wird.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

Ähnliche Themen

  1. Problem Trigger After Insert
    Von fh10 im Forum Trigger und Funktionen
    Antworten: 4
    Letzter Beitrag: 24.07.2010, 17:39
  2. UPDATE Trigger oder INSERT Trigger
    Von traxanos im Forum Trigger und Funktionen
    Antworten: 8
    Letzter Beitrag: 18.05.2010, 12:59
  3. Warum gibt es keine Select-Trigger?
    Von bx35 im Forum Trigger und Funktionen
    Antworten: 6
    Letzter Beitrag: 10.03.2009, 10:30
  4. Problem psql -l zeigt keine Datenbanken mehr
    Von Kilrathy im Forum Allgemeines
    Antworten: 22
    Letzter Beitrag: 10.02.2009, 16:08
  5. Trigger für Insert or Update
    Von raptor0 im Forum Trigger und Funktionen
    Antworten: 11
    Letzter Beitrag: 31.05.2006, 14:55

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