Announcement

Collapse
No announcement yet.

variable in trigger verwenden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • variable in trigger verwenden

    hallo zusammen.

    ich möchte über einen "insert"-trigger den wert eines primärschlüssels nachträglich verändern.
    ich kenne zwar das auto_increment-attibut - da ich aber erst seit ein paar tagen mysql nutze, probiere ich noch etwas rum.
    habe folgendes probiert:
    Code:
    CREATE TRIGGER addNew BEFORE INSERT ON personen FOR EACH ROW
    BEGIN
    SELECT @nextID := COUNT(pnr)+1 FROM personen;
    UPDATE personen SET pnr = @nextID WHERE pnr = 0;
    END;
    ich bekomme immer die fehlermeldung:
    not allowed to return a result set from a trigger

    ich gebe den wert doch nicht zurück, sondern verwende ihn im trigger. kann mir da vielleicht jemand helfen?

    danke für's vorbeischauen

    Gruß
    Sili

  • #2
    Hallo,
    Originally posted by sili View Post
    ...ich bekomme immer die fehlermeldung:
    not allowed to return a result set from a trigger

    ich gebe den wert doch nicht zurück, sondern verwende ihn im trigger. kann mir da vielleicht jemand helfen?
    Ähem, ... an dem Trigger ist ja so ziemlich alles falsch..
    Und doch bekommst du mit dem Select ein Resultset, da du kein SELECT INTO-Statement verwendest. Dann sollte die Variable keine Systemvariable sein, sondern lokal deklariert werden. Als nächstes ist es nicht möglich in einem Trigger per Select auf die gerade geänderte Tabelle zuzugreifen. Auch ist es keine gute Idee innerhalb eines BEFORE INSERT-Triggers ein Update auf die gerade geänderte Tabelle zu machen. Selbst wenn, gäbe es den DS den du ändern willst noch nicht. (Dafür würde man das globale Alias NEW verwenden)
    Und last but not least ist diese Variante nicht Mehrbenutzersicher!

    Also vergiss das mit dem Trigger und verwende das auto_increment von MySQL.

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      alles klar. dann werde ich das halt so machen.

      und danke für die schnelle antwort.

      ciao, ciao

      Comment

      Working...
      X