- MySql staat het niet toe om binnen een triggercode wijzigingen aan te brengen in dezelfde tabel waarop u die trigger heeft
- U kunt deze beperking omzeilen door een kolomwaarde van een rij die wordt ingevoegd te wijzigen met
BEFORE
evenement in plaats vanAFTER
. - Om nu kolomwaarden van een rij die in MySql wordt ingevoegd aan te pakken, moet je
NEW
gebruiken zoekwoord.
Dat gezegd hebbende, zou je trigger eruit moeten zien als
CREATE TRIGGER tg_test1_insert
BEFORE INSERT ON test1
FOR EACH ROW
SET NEW.originindex =
(
SELECT value
FROM cities
WHERE city = NEW.origin
);
Hier is SQLFiddle demo