首页 > 解决方案 > MySQL 错误 1215 无法添加外键约束

问题描述

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 错误,并尝试了各种方法来修复它,但都是徒劳的。请帮助。

太感谢了。

标签: mysql

解决方案


外键约束必须引用某些东西UNIQUE

在您的客户表中,这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 主键的常用方法,与您在 table 中所做的相同sales。您可以使用BIGINT而不是INT


推荐阅读