我有 2 张桌子:A
和B
A
包含以下列:
Id [uniqueIdentifier] -PK
checkpointId [numeric(20,0)]
B
包含以下内容:
Id [uniqueIdentifier] – PK
A_id (FK, uniqueIdentifier)
B
有A
来自A_id
列 (FK)的引用
问题:我想从表A
中删除所有checkpoint_id
小于的记录X
:
delete from CheckpointStorageObject where checkpointIdentifierIdentifier <= 1000
但我不能这样做,因为"The primary key value cannot be deleted because references to this key still exist"
我试图先从B
没有连接的表中删除:
DELETE FROM CheckpointToProtectionGroup
WHERE EXIST (SELECT * from CheckpointStorageObject
WHERE CheckpointStorageObject.CheckpointIdentifierIdentifier <= 1000)
但它没有用。
我该怎么做?是否可以使用一个执行命令从两个表中删除?
结果删除的记录可能非常大 - 每个表中有超过 30K 的记录。