- MySql nie pozwala na wprowadzanie zmian w kodzie wyzwalacza do tej samej tabeli, na której znajduje się ten wyzwalacz
- Możesz obejść to ograniczenie, zmieniając wartość kolumny wstawianego wiersza za pomocą
BEFORE
zdarzenie zamiastAFTER
. - Teraz, aby zaadresować wartości kolumn wiersza wstawianego do MySql, musisz użyć
NEW
słowo kluczowe.
Biorąc to pod uwagę, twój wyzwalacz powinien wyglądać tak
CREATE TRIGGER tg_test1_insert
BEFORE INSERT ON test1
FOR EACH ROW
SET NEW.originindex =
(
SELECT value
FROM cities
WHERE city = NEW.origin
);
Oto SQLFiddle demo