MySql告诉我:错误1215(HY000):无法添加外键约束
我想为表帐户中的“name”和表用户中的“name”建立一个关系,但它给了我这个错误:错误1215(HY000):无法添加外键约束 我搜索了不同的页面,但没有找到解决方案MySql告诉我:错误1215(HY000):无法添加外键约束,mysql,Mysql,我想为表帐户中的“name”和表用户中的“name”建立一个关系,但它给了我这个错误:错误1215(HY000):无法添加外键约束 我搜索了不同的页面,但没有找到解决方案 谢谢 外键约束实际上应该是主键约束。尽管可以对唯一的甚至非唯一的键(在MySQL中)进行约束,但这通常是一种不好的做法 因此: 请注意,帐户表中没有该名称。要获得名称,您需要将连接到用户外键约束实际上应该是主键约束。尽管可以对唯一的甚至非唯一的键(在MySQL中)进行约束,但这通常是一种不好的做法 因此: 请注意,帐户表中没有
谢谢 外键约束实际上应该是主键约束。尽管可以对唯一的甚至非唯一的键(在MySQL中)进行约束,但这通常是一种不好的做法 因此:
请注意,
帐户
表中没有该名称。要获得名称,您需要将连接到用户外键约束实际上应该是主键约束。尽管可以对唯一的甚至非唯一的键(在MySQL中)进行约束,但这通常是一种不好的做法
因此:
请注意,
帐户
表中没有该名称。要获得名称,您需要加入到用户
,但我需要关联“name”列。你的代码可以工作,但我不明白为什么我的代码不能工作。。。你能解释一下原因吗?谢谢你,兄弟@米克洛塞洛米利斯。您应该希望与主键的关系具有id
。主键是外键使用的最佳列。不能对非键列进行外键引用,但我想关联“name”列。你的代码可以工作,但我不明白为什么我的代码不能工作。。。你能解释一下原因吗?谢谢你,兄弟@米克洛塞洛米利斯。您应该希望与主键的关系具有id
。主键是外键使用的最佳列。不能对非键的列进行外键引用。
CREATE TABLE users (
id INT(8) AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
second_name VARCHAR(30) NOT NULL,
username VARCHAR(8) NOT NULL,
password VARCHAR(12) NOT NULL,
administrator BOOLEAN default false,
PRIMARY KEY (id)
)ENGINE=InnoDB;
CREATE TABLE account(
account_number INT(8) NOT NULL,
name VARCHAR(20) NOT NULL,
second_name VARCHAR(30) NOT NULL,
username VARCHAR(8) NOT NULL,
account_type INT(5) NOT NULL,
PRIMARY KEY (account_number),
CONSTRAINT FOREIGN KEY(name) REFERENCES users(name)
)ENGINE=InnoDB;
CREATE TABLE account (
account_number INT(8) NOT NULL,
user_id int NOT NULL,
second_name VARCHAR(30) NOT NULL,
username VARCHAR(8) NOT NULL,
account_type INT(5) NOT NULL,
PRIMARY KEY (account_number),
CONSTRAINT FOREIGN KEY (user_id) REFERENCES users(id)
)ENGINE=InnoDB;