Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何查找对不再存在的ID/记录的引用_Mysql - Fatal编程技术网

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

Mysql 如何查找对不再存在的ID/记录的引用,mysql,Mysql,假设我有记录客户和记录交易。每个交易都有一个指向客户记录的客户ID字段 显然,如果删除客户记录,必须首先删除所有事务,以避免悬空指针,即相应记录不再存在的ID。但是我继承了这个数据库,我想确保没有过去的编码错误在数据库中留下不一致的地方 如果我想确认没有悬空指针(没有customers.id不存在的customer\u id值),我将使用哪种查询?或者简单地说: SELECT Customer_id FROM TRANSACTION TRX WHERE NOT EXISTS(SELECT 1 F

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

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

如果我想确认没有悬空指针(没有customers.id不存在的customer\u id值),我将使用哪种查询?

或者简单地说:

SELECT Customer_id FROM TRANSACTION TRX
WHERE NOT EXISTS(SELECT 1 FROM Customer WHERE CustomerId = TRX.Customer_Id)
SELECT record_id FROM records_table WHERE customer_id NOT IN (SELECT customer_id FROM customer_table);
这将显示与customers表中不存在的customer_id关联的所有记录

然后删除:

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

一个
左连接
查询。谷歌,试试看。您可能还想看看外键及其
DELETE CASCADE
函数。