gpt4 book ai didi

mysql - 创建触发器时出错

转载 作者:行者123 更新时间:2023-11-30 01:02:27 24 4
gpt4 key购买 nike

我正在尝试创建一个触发器,每次在表 tb_produto_parent 中插入新数据时,我都需要更新列 cod_prod 再添加一个。

跟随触发器:

DELIMITER $$

create trigger trgAdicionaUm after insert
on tb_produto_parent
for each row

BEGIN
select cod_prod from tb_produto_parent;
update
tb_produto_parent set cod_prod = cod_prod +1;
END;

当我尝试执行代码时,MySQL 向我显示错误:

Error Code: 1415 Not allowed to return a result set from a trigger.

谢谢!

最佳答案

您的代码有两个主要问题

  1. 您不能在触发器中单独使用 SELECT,因为触发器不会将结果集返回给客户端

  2. 您不能在 MySQL 中拥有触发器的同一个表 (tb_produto_parent) 上使用 DML 语句(在您的情况下为 UPDATE)。因此,即使您解决了第一个问题,您仍然无法更新触发器内 tb_produto_parent 中的任何行。

您在 MySQL 触发器中唯一能做的就是通过使用触发器的 BEFORE 事件来更改正在插入的行的列值。

一个可能的解决方案是使用存储过程。

关于mysql - 创建触发器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19984468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com