无法添加外键约束 mysql
Cannot add foreign key constraint mysql
有谁知道为什么我在这个查询中总是收到这个错误。我很难过:
Error Code: 1215. Cannot add foreign key constraint
我的代码:
CREATE TABLE countries (
id INT NOT NULL AUTO_INCREMENT,
cname VARCHAR(45) NOT NULL,
PRIMARY KEY (id)
) COMMENT='Country List';
CREATE TABLE members (
id INT NOT NULL AUTO_INCREMENT,
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Salt VARCHAR(45),
PRIMARY KEY (id),
FOREIGN KEY (Salt) REFERENCES countries(cname)
) COMMENT='stuff';
外键必须引用主键或唯一键。例如,您可以使 countries.cname
唯一:
CREATE TABLE countries (
id INT NOT NULL AUTO_INCREMENT,
cname VARCHAR(45) NOT NULL,
PRIMARY KEY (id),
UNIQUE (cname) -- Here
) COMMENT='Country List';
或者,您可以删除 salt
列并通过 id
:
进行引用
CREATE TABLE members (
id INT NOT NULL AUTO_INCREMENT,
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Salt_id INT, -- Here
PRIMARY KEY (id),
FOREIGN KEY (Salt_Id) REFERENCES countries(id) -- And here
) COMMENT='stuff';
有谁知道为什么我在这个查询中总是收到这个错误。我很难过:
Error Code: 1215. Cannot add foreign key constraint
我的代码:
CREATE TABLE countries (
id INT NOT NULL AUTO_INCREMENT,
cname VARCHAR(45) NOT NULL,
PRIMARY KEY (id)
) COMMENT='Country List';
CREATE TABLE members (
id INT NOT NULL AUTO_INCREMENT,
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Salt VARCHAR(45),
PRIMARY KEY (id),
FOREIGN KEY (Salt) REFERENCES countries(cname)
) COMMENT='stuff';
外键必须引用主键或唯一键。例如,您可以使 countries.cname
唯一:
CREATE TABLE countries (
id INT NOT NULL AUTO_INCREMENT,
cname VARCHAR(45) NOT NULL,
PRIMARY KEY (id),
UNIQUE (cname) -- Here
) COMMENT='Country List';
或者,您可以删除 salt
列并通过 id
:
CREATE TABLE members (
id INT NOT NULL AUTO_INCREMENT,
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Salt_id INT, -- Here
PRIMARY KEY (id),
FOREIGN KEY (Salt_Id) REFERENCES countries(id) -- And here
) COMMENT='stuff';