假设我的应用程序有两个不同的表,其中一个表引用另一个表。还定义了删除级联?
我不想删除删除级联约束,但有时从我的本地我想要删除忽略cascade语句,如:
delete_without_cascade from table1 where id = id1
有没有办法呢
答案 0 :(得分:1)
删除时级联删除父级时删除子记录。如果您不想这样做,则必须对FK约束绑定的列中的值执行某些操作,因为db模式不应允许记录具有孤立值。如果列允许null
值,则在执行更新之前将FK列值设置为null
,然后再运行删除。
如果级联不存在,执行delete
语句时通常会出错,因为其他表中会有孤立记录。
如果您不了解Cascade on delete的工作原理,则无法反向工作,即。删除引用父表的记录不会导致父记录被删除。