如何验证引入外键约束不会引起问题

时间:2019-12-17 17:00:33

标签: mysql

我有两个表,表A和表B。表A有一个名为customerId的列。我想在表B的customerId和表A的customerId之间创建一个外键。我有一个庞大的数据库,在引入外键之前,我想验证表B的所有customerId是否具有到表A的customerId的有效链接。

在引入外键之前是否有一个SQL查询来查看任何恶意数据?

1 个答案:

答案 0 :(得分:1)

您可以像这样提取有害记录:

select tb.*
from tableb tb
left join tablea ta on ta.customerId = tb.customerId
where ta.customerId is null

这将为您提供tablebcustomerId不存在的所有记录。{p>

或使用tablea

not exists

有时候,仅列出丢失的select tb.* from tableb tb where not exists (select 1 from tablea ta where ta.customerId = tb.customerId) 会很方便:

customerIds