无法在 MySQL 中添加外键?

Cannot add foreign key in MySQL?

这是我正在执行的语句和相关错误,感谢任何提示错误以及如何进一步调试的提示。使用 MySQL Workbench/MySQL.

特别迷惑这里的子行是什么意思?外键如何与子行相关?这里的子行是什么?

ALTER TABLE Orders
ADD CONSTRAINT fk_Customer FOREIGN KEY (CustomerID) 
REFERENCES Customers(CustomerID) 

Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (test.#sql-ff_2, CONSTRAINT fk_Customer FOREIGN KEY (CustomerID) REFERENCES Customers (CustomerID))

此错误意味着您的表包含您尝试创建的外键不应允许的数据。您可以使用查询来查找它们:

SELECT *
FROM   orders
WHERE  customerid NOT IN (SELECT customerid FROM customers)

如果您确定这些行确实有问题,您可以使用类似的 delete 语句来删除它们:

DELETE FROM orders
WHERE  customerid NOT IN (SELECT customerid FROM customers)