【问题标题】:MySQL ERROR 1005 (HY000) : Can't create tableMySQL ERROR 1005 (HY000) : 无法创建表
【发布时间】:2014-12-16 00:50:39
【问题描述】:

表格

+---------------+-------------+------+-----+---------+----------------+
| 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);

这给了我一个错误,

错误 1005 (HY000): 无法创建表 'table2.#sql-3fb_7cf' (errno: 150)

表 1 id 的主键正确。还有哪里失败了?

【问题讨论】:

  • 你的桌子真的被命名为'Table'吗?

标签: mysql


【解决方案1】:

修改表并添加外键时,必须先将引用列添加为键,然后再将其添加为外键。

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

【讨论】:

  • +1 其实是必填;任何外键必须被索引。
  • 没问题..我们不都希望 MySQL 提供更多有用的错误消息吗?
猜你喜欢
  • 1970-01-01
  • 2011-06-06
  • 2019-02-26
  • 2011-02-17
  • 1970-01-01
  • 2017-04-09
  • 2016-10-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多