由于级联触发器未更新该行,因此未删除该行
|
我在删除具有触发器的表中的行时遇到问题,该触发器调用第二个表的触发器,后者会更新第一个表中的行。说明如下:
Table A (id,b_table_count)
Table B (id,a_table_id_fk)
表A的触发器在DELETE DELETE之前具有指令:
BEGIN
DELETE FROM b where a_table_fk = OLD.id;
RETURN OLD;
END;
表B具有触发AFTER DELETE的指令:
UPDATE a SET b_table_count = b_table_count-1 WHERE OLD.a_table_id_fk = a.id;
当我从表A中删除行时,表A在B中没有连接的行,一切都正确。
但是,当我从连接了表B中的行的表A中删除行时,DELETE语句返回\“查询成功返回:0行受影响\”。我必须第二次执行DELETE语句,然后最后删除该行。在第一次DELTE之后,仅已连接的ROWS在表B中被删除,但在表A中被删除的行仍然保留。
你有答案吗?我怀疑pgsql不允许更新触发器中要删除的行,但是我在pgsql文档中没有找到任何有关它的信息。
解决办法是什么?
没有找到相关结果
已邀请:
2 个回复
氮顺
期差骇蓟