MySQL错误1005(HY000):无法创建表

MySQL错误1005(HY000):无法创建表

问题描述:

MySQL错误1005(HY000):无法创建表

+---------------+-------------+------+-----+---------+----------------+ 
| Field   | Type  | Null | Key | Default | Extra   | 
+---------------+-------------+------+-----+---------+----------------+ 
| id   | int(11)  | NO | PRI | NULL | auto_increment | 
| name   | varchar(64) | NO |  | NULL |    | 
----------------------------------------------------------------------- 

表2

ALTER TABLE Table2 
    ADD COLUMN person_id int(11), 
    ADD FOREIGN KEY fk_person_id(person_id) references Table(id); 

这给我一个错误,

ERROR 1005(HY000):能't create table'table2。#sql-3fb_7cf'(errno:150)

表1 id的主键是正确的。还有哪些地方失败?

+1

您的表格实际上是否名为'表'? – 2014-10-20 22:26:11

当您更改表并添加一个外键时,您必须添加引用列作为一个键,然后将它添加为外键。

ALTER TABLE Table2 
    ADD COLUMN person_id int(11), 
    ADD INDEX(person_id), 
    ADD FOREIGN KEY fk_person_id(person_id) references Table(id); 
+0

+1其实它是*必填*;任何外键*必须*被索引。 – Barranka 2014-10-20 22:29:49

+0

这工作,谢谢。 – theblackpearl 2014-10-20 22:33:29

+2

没问题。我们不都希望MySQL提供更多有用的错误消息吗? – 2014-10-20 22:55:20