Announcement

Collapse
No announcement yet.

after update trigger / fehler in syntax

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

  • after update trigger / fehler in syntax

    Hallo zusammen,

    ich versuche jetzt seit einger Zeit einen Trigger hinzukriegen, scheitere aber immer wieder an einem Syntax Problem.
    Folgenden Trigger habe ich mir gemäss gefundenen Beispielen zusammengebastelt:

    CREATE TRIGGER event_state AFTER UPDATE on hcts_event
    FOR EACH ROW
    BEGIN
    IF NEW.event_state = 3 THEN
    BEGIN
    update hcts_eventuser set eventuser_state = 3 where eventuser_id_event = OLD.event_id;
    END IF;
    END;
    MySQL meldet mir nun folgendes:

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6

    Nur seh ich jetzt den Wald vor lauter Bäumen nicht mehr...wo kann hier das Problem sein?
    Der Update Befehl für sich alleine ausgeführt funktioniert

    Wäre um Hilfe dankbar

  • #2
    Hallo,

    hast du den Delimiter vor dem Erstellen auf irgendetwas anderes als ; gesetzt?
    z.B.:
    [highlight=sql]
    delimiter |

    CREATE TRIGGER event_state AFTER UPDATE on hcts_event
    FOR EACH ROW
    BEGIN
    IF NEW.event_state = 3 THEN
    BEGIN
    update hcts_eventuser set eventuser_state = 3 where eventuser_id_event = OLD.event_id;
    END IF;
    END;
    |
    [/highlight]

    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
      Hallo Falk,

      danke für den Hinweis mit den Delimitern.

      Es waren 2 Probleme:

      1: Wie Du richtig bemerkt hast fehlte der Delimiter

      Code:
      DELIMITER &
      
      CREATE TRIGGER event_state AFTER UPDATE ON hcts_event
        FOR EACH ROW
        BEGIN
            IF NEW.event_state = 3 THEN 
                UPDATE hcts_eventuser SET eventuser_state = 3 WHERE eventuser_id_event = OLD.event_id;
            END IF;
        END;
      &
      2: das Statement lief danach zwar immer noch auf den gleichen Fehler.
      Das Problem lag hier am PHPMyAdmin. Aus irgendeinem Grund kann ich den Trigger dort nicht erstellen ?!? Als ich das Script dann in der MySQL Konsole laufen liess hat es tadellos funktioniert.

      Danke für die Hilfe

      Comment

      Working...
      X