我知道以前有人问过这样的问题。我确保它们具有相同的数据类型并检查了我的语法,但我仍然收到错误:
ALTER TABLE meetings ADD FOREIGN KEY (ownerName) REFERENCES employees(name);
ERROR 1215 (HY000): Cannot add foreign key constraint
mysql> desc `meetings`;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| room | int(6) | NO | | NULL | |
| ownerName | varchar(30) | NO | | NULL | |
| ownerID | varchar(30) | NO | | NULL | |
+-----------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
mysql> desc `employees`;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| name | varchar(30) | NO | | NULL | |
| username | varchar(30) | NO | PRI | NULL | |
| pswd | varchar(255) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
我做错了什么?
最佳答案
name
不是 employees 表中的主键,所以 .. 尝试使用 username
ALTER TABLE meetings ADD FOREIGN KEY (ownerName) REFERENCES employees(username);
或按照 DanielE 的建议,或者您可以使用 name
列,但此列需要一个 UNIQUE 索引
关于MySQL添加外键错误1215,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49004958/