开发者社区> 问答> 正文

MySql错误150-外键 ?mysql

当我执行以下两个查询时(我将它们简化为绝对必要):

mysql> CREATE TABLE foo(id INT PRIMARY KEY); Query OK, 0 rows affected (0.01 sec)

mysql> CREATE TABLE bar ( id INT, ref INT, FOREIGN KEY (ref) REFERENCES foo(id)) ENGINE InnoDB; 我收到以下错误:错误1005(HY000):无法创建表'./test/bar.frm'(errno:150)

我的错误在哪里?半个小时盯着我看,我还没找到他。

展开
收起
保持可爱mmm 2020-05-17 12:39:59 436 0
1 条回答
写回答
取消 提交回答
  • 来自FOREIGN KEY约束

    如果重新创建已删除的表,则该表必须具有符合引用该表的外键约束的定义。如前所述,它必须具有正确的列名和类型,并且必须在引用的键上具有索引。如果不满足这些条件,MySQL将返回错误号1005,并在错误消息中引用错误150。

    我怀疑这是因为您没有foo以InnoDB的身份创建,因为其他一切看起来都还可以。

    编辑:从同一页面-

    两个表都必须是InnoDB表,并且不能是TEMPORARY表。来源:stack overflow

    2020-05-17 12:44:44
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像