Problem mit Trigger

Problem mit Trigger

am 03.04.2006 13:56:17 von Klaus Beyer

Hallo!

Ich habe folgende zwei Definitionen eines Triggers. Die erste funktioniert,
aber die zweite nicht. Kann mir jemand sagen warum?

Im Voraus vielen Dank.

Viele Grüße
Klaus


CREATE TRIGGER mein_trigger
BEFORE INSERT ON meine_tabelle FOR EACH ROW
SET NEW.updated = NOW(), NEW.inserted = NOW();

CREATE TRIGGER mein_trigger
BEFORE INSERT ON meine_tabelle FOR EACH ROW
BEGIN
SET NEW.updated = NOW();
SET NEW.inserted = NOW();
END;

Re: Problem mit Trigger

am 03.04.2006 15:34:50 von Axel Schwenke

"Klaus Beyer" wrote:
>
> Ich habe folgende zwei Definitionen eines Triggers. Die erste funktioniert,
> aber die zweite nicht. Kann mir jemand sagen warum?
....

> CREATE TRIGGER mein_trigger
> BEFORE INSERT ON meine_tabelle FOR EACH ROW
> SET NEW.updated = NOW(), NEW.inserted = NOW();
>
> CREATE TRIGGER mein_trigger
> BEFORE INSERT ON meine_tabelle FOR EACH ROW
> BEGIN
> SET NEW.updated = NOW();
> SET NEW.inserted = NOW();
> END;

Ich vermute mal, du hast das so im Kommandozeilenclient 'mysql'
eingetippt. Dann hast du ein Problem mit dem ';' Delimiter, weil
'mysql' (der Client) dein CREATE-Statement mit dem ersten ';'
als beendet ansieht.

Das freundliche Handbuch weiß aber Rat:

http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html
(nach unten bis zum Beispiel scrollen, den Absatz davor lesen)

Auch das Beispiel zu CREATE TRIGGER enthält das entsprechende
DELIMITER Kommando, allerdings ohne Erklärung.


XL