Sql 删除没有引用行的行
假设我有一个对表pk具有fk约束的表 我想删除所有与之无关的行 是否有方法跳过违反约束的行并删除所有其他行Sql 删除没有引用行的行,sql,tsql,Sql,Tsql,假设我有一个对表pk具有fk约束的表 我想删除所有与之无关的行 是否有方法跳过违反约束的行并删除所有其他行 可能是每行都有一个事务的循环。我想您应该删除pk中没有引用行的所有行。如果是: delete from pk where not exists (select 1 from fk where fk.fk = pk.pk ); 注意:您不想在此处使用no
可能是每行都有一个事务的循环。我想您应该删除
pk
中没有引用行的所有行。如果是:
delete from pk
where not exists (select 1
from fk
where fk.fk = pk.pk
);
注意:您不想在此处使用
not in
,因为fk.fk
可能是NULL
如果您有外键约束,则不存在违反约束的行。我可能会将您的问题解释为“删除没有引用行的行”,但您的澄清会改善问题。发布您的表结构从PK表中删除?您好,在我的示例中,有4个表可以引用PK,我可以在示例中添加“and”。@jrb。对您应该添加4个与和相关的不存在
子句。