Seigo: [MySQL] Trigger mit IF bringen mich zur Verzweiflung

Beitrag lesen

Tag zusammen,

ich versuche gerade, mit Triggern zu arbeiten.

Folgende Aufgabe:
Ich habe eine Tabelle, die Artikel und deren Preise enthält.
Bei JEDER Änderung soll last\_update = NOW() gesetzt werden.
Bei einer Änderung von Preisen soll zusätzlich die Spalte preisdatum auf NOW() gesetzt werden.

Hier meine Tabelle (vereinfacht):

CREATE  TABLE IF NOT EXISTS articles (
  id INT NOT NULL AUTO_INCREMENT ,
  insert\_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
  last\_update DATETIME NOT NULL ,
  preisdatum DATETIME NOT NULL COMMENT 'Datum der letzten Preisänderung' ,
  einkaufspreis DOUBLE NOT NULL COMMENT 'Netto' ,
  verkaufspreis\_1 DOUBLE NOT NULL COMMENT 'Netto' ,
  PRIMARY KEY (id)
)
ENGINE = MyISAM;

Mit folgendem Trigger habe ich mein Glück versucht, leider erfolglos:

DELIMITER $$
CREATE TRIGGER upd\_preisdatum BEFORE UPDATE ON articles
FOR EACH ROW
BEGIN
  IF @einkaufspreis != NEW.einkaufspreis THEN
   SET NEW.preisdatum = NOW();
  END IF;
END;
$$
DELIMITER ;

Irgendwie scheint MySQL schon die erste Zeile nicht zu mögen:
#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 'DELIMITER $$
CREATE TRIGGER upd\_preisdatum BEFORE UPDATE ON articles
FOR E' at line 1

Wer kann mir weiterhelfen und die Grundlagen von Triggern ein wenig näher erläutern?