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?