我在表 votes
上添加外键时遇到问题。
mysql> describe votes;
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| user_id | int(11) unsigned | NO | | NULL | |
| video_id | int(11) unsigned | NO | | NULL | |
| vote | int(11) | NO | | NULL | |
+----------+------------------+------+-----+---------+----------------+
mysql> describe user;
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| email | varchar(256) | NO | MUL | NULL | |
| password | varchar(32) | NO | | NULL | |
| name | varchar(24) | NO | | NULL | |
+----------+------------------+------+-----+---------+----------------+
Votes.user_id 是 User.id 的外键。然而,当我运行时,机器人有相同的时间:
mysql> alter table `votes`
add CONSTRAINT `votes_FK_1`
FOREIGN KEY (`user_id`) REFERENCES `user` (`id`);
MySQL 正在抛出一个很好的旧 150
ERROR 1005 (HY000): Can't create table 'crocko.#sql-6e1_3c5' (errno: 150)
我做错了什么?
最佳答案
您需要检查表中是否存储了任何数据。如果有,则需要删除它们。
或者,如果您的 MySQL 数据库引擎是 MyISAM,则创建表后将无法添加外键。
您可以查看如何将其更改为InnoDB..
关于mysql - 无法创建 FOREIGN KEY MySQL 错误 150,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12751169/