假设我有一个表格,其中fk约束到表格pk。
我想删除与它无关的所有行。
是否有办法跳过违反约束的行并删除所有其他行。
也许是每行有一个事务的循环..
答案 0 :(得分:3)
我认为您要删除pk
中没有引用行的所有行。如果是这样的话:
delete from pk
where not exists (select 1
from fk
where fk.fk = pk.pk
);
注意:您 想要在此使用not in
,因为fk.fk
可能是NULL
。