MySQL错误1215无法添加foriegn密钥约束


USE sales;
CREATE TABLE sales
(
purchase_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
date_of_purchase DATE,
customer_id INT,
idem_code VARCHAR(10)
);
CREATE TABLE customers
(
customer_id INT,
first_name VARCHAR(255),
last_name VARCHAR(255),
email_address VARCHAR(255),
number_of_customer INT
);
ALTER TABLE sales
ADD FOREIGN KEY (customer_id) REFERENCES customers(customer_id) ON DELETE CASCADE;

我是一个完全的SQL初学者。我在1215遇到了SQL错误,并尝试了各种方法来修复它,但都无济于事。请帮忙。

非常感谢。

外键约束必须引用某个UNIQUE

在您的customers表中,customer_id是一个简单的INT,没有强制执行唯一性。

我强烈建议您将表格客户定义更改为:

CREATE TABLE customers
(
customer_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, -- <---- Check this line
first_name VARCHAR(255),
last_name VARCHAR(255),
email_address VARCHAR(255),
number_of_customer INT
);

INT NOT NULL PRIMARY KEY AUTO_INCREMENT是在MySQL中编写INT主键的常用方法,与表sales中的方法相同。您可以使用BIGINT而不是INT

最新更新