繁体   English   中英

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

[英]Foreign Key error: MySQL ERROR 1005 (HY000): Can't create table

我遇到一个错误消息:

MySQL ERROR 1005 (HY000): Can't create table

每当我尝试创建外键来链接我的两个表时。 我尝试了多种不同的方式来对代码进行措辞,但似乎都无法解决该错误,我假设的当前代码最接近于工作:

ALTER TABLE requests
    ADD FOREIGN KEY FK_UserRequest(device_id) REFERENCES users(device_id)

我通读了有关该主题的其他许多文章,但似乎找不到关于为何不起作用的简明答案。 我希望有人可以专门回答以下问题:

  • 外键是否需要引用主键? 我看过一些帖子,对这个问题说是与否。
  • 为什么此特定代码不起作用?

背景信息

  • 引擎被确认为innoDB
  • device_id是两个表中具有相同属性的列:CHAR(40)
  • 用户表中的device_id不是主键
  • 数据库详细信息:版本5.5.56-MariaDB

是的,您需要确保引用的键是某种索引。

摘自: https : //dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html

MySQL需要外键和引用键的索引[...]

InnoDB允许外键引用任何列或列组。 但是,在引用表中,必须有一个索引,其中引用列以相同的顺序列为第一列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM