【发布时间】:2019-12-12 13:52:41
【问题描述】:
我正在尝试按以下方式创建:
更新后在 Company 表上创建一个触发器,该触发器设置一个 如果小于 0,公司的预算为 0。
但我遇到了无法更新、设置表格等错误。我知道这是因为我需要从“更新后”更改为“更新前”。但我不能忽略预期的代码。我能做什么?
我的mySQL代码是:
delimiter $$
drop procedure if exists after_company_update $$
create trigger after_company_update after update on Company
for each row begin
update Company set budget = 0 where budget < 0;
end $$
delimiter ;
错误:ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG:无法更新存储函数/触发器中的表“公司”,因为它已被调用此存储函数/触发器的语句使用。
【问题讨论】:
-
顺便说一句,为什么
drop procedure if exists after_company_update程序被删除了?不应该是trigger?
标签: mysql sql database mysql-8.0