【发布时间】:2022-01-24 23:11:46
【问题描述】:
我有一个名为 Product 的表,如下所示:
| id | price |
|---|---|
| 1 | 50 |
| 2 | 51 |
| 3 | 12 |
我想在 Mysql 中创建一个 Trigger 来执行这些操作: 如果我们将新产品添加到表中或如果产品更新,则表中的所有产品价格应该是增加 10 点!
示例: 我们更新第一个由 (id=1,price=900) 更新的产品,那么最终的表格如下:
| id | price |
|---|---|
| 1 | 900 |
| 2 | 61 |
| 3 | 22 |
我已尝试通过以下命令解决此问题,但出现错误:
CREATE trigger increase_price
after update on product.price
begin
if NEW.price<> old.price then
insert into product (id,price)
values (old.id,old.price+10)
end if;
end;
错误:无法更新存储函数/触发器中的表,因为它已被调用此存储函数/触发器的语句使用
如果您能帮我解决这个问题,我将非常感激:)
【问题讨论】:
-
此操作不能在触发器中执行。触发器可能会影响正在处理的行或另一个表,而不是同一个表中的另一行。使用根据存储过程而不是单个插入/更新查询。
-
我应该用触发器实现解决方案 :((( 但是如果你能提供上面建议的完整代码块,我会很高兴,更清楚
-
我应该用触发器实现解决方案这是不可能的。不过你当然可以试试……
-
'我应该用触发器实现解决方案' - 你为什么这么说?,鉴于提供的信息,这是不可能的原因是可以生成无限循环,插入触发触发器哪个更新触发插入等的触发器...
标签: mysql triggers sql-update