如何查找不再存在的ID /记录的引用

时间:2015-12-17 16:21:26

标签: mysql

假设我有记录客户并记录交易。每笔交易都有一个指向客户记录的客户ID字段。

显然,如果删除客户记录,则必须先删除所有事务,以避免悬挂指针,相应记录不再存在的ID。但是我继承了这个数据库,我想确保没有过去的编码错误,从而在数据库中留下不一致。

如果我想验证没有悬空指针(不存在customers.id不存在的customer_id值),我会使用哪种查询?

2 个答案:

答案 0 :(得分:0)

SELECT Customer_id FROM TRANSACTION TRX
WHERE NOT EXISTS(SELECT 1 FROM Customer WHERE CustomerId = TRX.Customer_Id)

答案 1 :(得分:0)

或者简单地说:

for /F "delims=" %%I in ('C:\python27\python.exe GetProject.py "#p=/Product Delivery/Product Delivery.pj#s=Team Projects/Team Projects.p j#s=Platform Pack/Platform Pack.pj#s=GERAN SAT(A)/project.pj"') do set "project_name=%%I"

这将显示与customer_id相关联的每条记录,而这些记录在customers表中不存在。

然后删除:

SELECT record_id FROM records_table WHERE customer_id NOT IN (SELECT customer_id FROM customer_table);