MySQL-Trigger IF-Anweisung mit Select

Ich versuche, erstellen Sie einen trigger auf meinem Tisch, so dass wenn ich Daten einfügen, wird versucht, die Daten aus einer Spalte (Noten) und update einer anderen Tabelle (Stammdaten) die Spalte Notizen (Zusätzliche) mit den Daten. Wenn er Sie nicht finden kann, möchte ich die insert-Anweisung kopiert werden, um eine andere Tabelle (failedtofind). Mein trigger ist unten, aber es wird berichtet, dass es einen syntax-Fehler auf meinem IF-Anweisung, und ich kann nicht ganz es funktioniert:

DELIMITER $$
TRIGGER `testdb`.`testTable`
AFTER INSERT ON `testdb`.`testTable`
FOR EACH ROW
BEGIN    
    IF ((SELECT PrimaryID FROM testdb.masterData WHERE PrimaryID = NEW.PrimaryID) > 0 )
        UPDATE masterData AS t
        SET t.Additional = NEW.Notes
        WHERE t.PrimaryID = NEW.PrimaryID;
    ELSE
        INSERT IGNORE INTO failedtofind SET (all the columns);
    END IF;

END$$

Außerdem ist dies der Weg, ich sollte es tun? Ich bin ein Neuling, wenn es um Datenbanken, so wie immer, wenn ich was falsch mache, bitte fühlen Sie sich frei, mich zu korrigieren.

InformationsquelleAutor DavisTasar | 2012-07-30
Schreibe einen Kommentar