假设我有记录客户并记录交易。每笔交易都有一个指向客户记录的客户ID字段。
显然,如果删除客户记录,则必须先删除所有事务,以避免悬挂指针,相应记录不再存在的ID。但是我继承了这个数据库,我想确保没有过去的编码错误,从而在数据库中留下不一致。
如果我想验证没有悬空指针(不存在customers.id不存在的customer_id值),我会使用哪种查询?
答案 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);