我有两个表,表A和表B。表A有一个名为customerId的列。我想在表B的customerId和表A的customerId之间创建一个外键。我有一个庞大的数据库,在引入外键之前,我想验证表B的所有customerId是否具有到表A的customerId的有效链接。
在引入外键之前是否有一个SQL查询来查看任何恶意数据?
答案 0 :(得分:1)
您可以像这样提取有害记录:
select tb.*
from tableb tb
left join tablea ta on ta.customerId = tb.customerId
where ta.customerId is null
这将为您提供tableb
中customerId
不存在的所有记录。{p>
或使用tablea
:
not exists
有时候,仅列出丢失的select tb.*
from tableb tb
where not exists (select 1 from tablea ta where ta.customerId = tb.customerId)
会很方便:
customerIds