У нас есть 2 таблицы, в которых хранятся имена пользователей и пароли, а также два веб-сайта, на которых пользователь вводит логин (плохая идея, которую я знаю, но у меня нет контроля над этим).Невозможно обновить другую таблицу в триггере
Поэтому, когда член обновляет свой пароль на одной таблице, я хотел бы, чтобы триггер обновил пароль на другой таблице. У меня проблемы, потому что это дает мне ошибку.
Запрос:
update authenticate set password = md5('superman') where member_id = 108649
Ошибка:
ERROR 1442 (HY000) at line 3: Can't update table 'authenticate' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
Вот два триггера:
-- When update runs on the authenticate table
CREATE TRIGGER `authenticate_after_update` AFTER UPDATE ON `authenticate` FOR EACH ROW BEGIN
IF new.password != old.password THEN
update auth set passwd = new.password where member_id = new.member_id;
end if;
END
-- When update runs on the auth table
CREATE TRIGGER `auth_after_update` AFTER UPDATE ON `auth` FOR EACH ROW BEGIN
if new.passwd != old.passwd then
update authenticate set password = new.passwd where member_id = new.member_id;
end if;
END