- MySql не позволява да се правят промени в код за задействане на същата таблица, в която имате този тригер
- Можете да преодолеете това ограничение, като промените стойност на колона на ред, който се вмъква, като използвате
BEFORE
събитие, а неAFTER
. - Сега, за да адресирате стойностите на колони на ред, който се вмъква в MySql, трябва да използвате
NEW
ключова дума.
Като се има предвид това, спусъкът ви трябва да изглежда така
CREATE TRIGGER tg_test1_insert
BEFORE INSERT ON test1
FOR EACH ROW
SET NEW.originindex =
(
SELECT value
FROM cities
WHERE city = NEW.origin
);
Ето SQLPiddle демонстрация