LINUX.ORG.RU

MySQL и триггеры

 , ,


0

1

Привет всем.

Подскажите, почему имея такие вот НЕ взаимоисключающие триггеры:

DELIMITER $$
CREATE TRIGGER a_after_insert
AFTER INSERT ON a FOR EACH ROW BEGIN
  INSERT INTO b (a_id) VALUES (NEW.id);
END$$
DELIMITER ;

DELIMITER $$
CREATE TRIGGER b_after_insert
AFTER INSERT ON b FOR EACH ROW BEGIN
  UPDATE a SET b_id = NEW.id WHERE id = NEW.a_id;
END$$
DELIMITER ;

Получаю ошибку мускуля о:

ERROR 1442 (HY000): Can't update table 'a' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

Как реализовать подобное, чтобы мускуль не ругался?


Ответ на: комментарий от WitcherGeralt

Причём можно будет заюзать before insert, если там нет внешних ключей.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Така же ошибка:

DELIMITER $$
CREATE TRIGGER a_after_insert
AFTER INSERT ON a FOR EACH ROW BEGIN
  INSERT INTO b (a_id) VALUES (NEW.id);
  UPDATE a SET b_id = LAST_INSERT_ID();
END$$
DELIMITER ;

djnoob
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.