- MySql erlaubt keine Änderungen innerhalb eines Triggercodes an derselben Tabelle, auf der Sie diesen Trigger haben
- Sie können diese Einschränkung umgehen, indem Sie einen Spaltenwert einer Zeile ändern, die mit
BEFORE
eingefügt wird Ereignis stattAFTER
. - Um nun Spaltenwerte einer Zeile zu adressieren, die in MySql eingefügt wird, müssen Sie
NEW
verwenden Schlüsselwort.
Davon abgesehen sollte Ihr Trigger so aussehen
CREATE TRIGGER tg_test1_insert
BEFORE INSERT ON test1
FOR EACH ROW
SET NEW.originindex =
(
SELECT value
FROM cities
WHERE city = NEW.origin
);
Hier ist SQLFiddle Demo