- MySql ne permet pas d'apporter des modifications dans un code de déclencheur à la même table sur laquelle vous avez ce déclencheur
- Vous pouvez surmonter cette limitation en modifiant une valeur de colonne d'une ligne insérée à l'aide de
BEFORE
événement plutôt queAFTER
. - Maintenant, pour traiter les valeurs de colonne d'une ligne insérée dans MySql, vous devez utiliser
NEW
mot-clé.
Cela étant dit, votre déclencheur devrait ressembler à
CREATE TRIGGER tg_test1_insert
BEFORE INSERT ON test1
FOR EACH ROW
SET NEW.originindex =
(
SELECT value
FROM cities
WHERE city = NEW.origin
);
Voici SQLFiddle démo