如何从没有级联的postgresql表中删除行

时间:2017-08-17 16:47:42

标签: sql postgresql

假设我的应用程序有两个不同的表,其中一个表引用另一个表。还定义了删除级联?

我不想删除删除级联约束,但有时从我的本地我想要删除忽略cascade语句,如:

delete_without_cascade from table1 where id = id1

有没有办法呢

1 个答案:

答案 0 :(得分:1)

删除时级联删除父级时删除子记录。如果您不想这样做,则必须对FK约束绑定的列中的值执行某些操作,因为db模式不应允许记录具有孤立值。如果列允许null值,则在执行更新之前将FK列值设置为null,然后再运行删除。

如果级联不存在,执行delete语句时通常会出错,因为其他表中会有孤立记录。

如果您不了解Cascade on delete的工作原理,则无法反向工作,即。删除引用父表的记录不会导致父记录被删除。