- 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
);
これが