有一个触发器:
DELIMITER //
create trigger betdesk_db.after_update_confirm
after update on pre_Accounts for each row
begin
insert into Accounts(mail, `password`, solt, role_id) values (NEW.mail, NEW.password, NEW.solt, 2);
delete from pre_Accounts where NEW.pre_account_id = pre_account_id;
end; //
DELIMITER ;
意思是在更新表中的数据时,将pre_Accounts它们转移到表中Accounts并删除。但是,更新数据时出现错误:
update pre_Accounts set confirm = true where pre_account_id = 1;
由于以下错误,数据未更新:
错误代码:1442。无法更新存储函数/触发器中的表“pre_accounts”,因为它已被调用此存储函数/触发器的语句使用。
我哪里错了,告诉我..
您的原因在问题中说明“因为它已被调用此存储函数/触发器的语句使用”。换句话说,您不能在表的更新后触发器中从同一个表中删除。作为一种选择,您可以尝试删除 Accounts 表触发器中的记录