我正在尝试创建一个触发器,每次在我的表tb_produto_parent中插入一个新数据时,我需要更新columm 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.
谢谢!
答案 0 :(得分:0)
Error Code: 1415 Not allowed to return a result set from a trigger.
看着你的触发器:
BEGIN
select cod_prod from tb_produto_parent;
update
tb_produto_parent set cod_prod = cod_prod +1;
END;
select
语句似乎是导致此错误的原因。删除它。
答案 1 :(得分:0)
您的代码存在两个主要问题
您不能在触发器中使用SELECT
,因为触发器不会将结果集返回给客户端
您不能在MySQL上具有触发器的同一个表(UPDATE
)上使用DML语句(在您的情况下为tb_produto_parent
)。因此,即使您修复了第一个问题,您仍然无法更新触发器中tb_produto_parent
内的任何行。
您在MySQL触发器中唯一能做的就是通过使用BEFORE
事件来触发插入行的列的值。
可能的解决方案是使用存储过程。