2014-10-20 146 views
1

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

回答

3

當您更改表並添加一個外鍵時,您必須添加引用列作爲一個鍵,然後將它添加爲外鍵。

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

相關問題