用mysql新建表comment,有一个字段openid需要有外键约束,在后台上死活创建不了。报错:ERROR 1005 (HY000): Can't create table 'morning_csu.comment' (errno: 150)
搜了一下,用show engine innodb status命令看了一下latest foreign key error:

也没有什么有用信息,只是告诉你外键这里出了问题所以创建不了表。
搜了好一会儿,检查了字段类型、长度、索引等等各种设置是否一致,就是没有发现问题。终于发现一个命令show create table 表名可以查看已经创建的表的建表语句(因为我是后面接手数据库的,被reference的那个表不是我建的),就用这个命令查看了一下,发现是引擎的问题。。。我的建表语句里面引擎是InnoDB,原来的是MyISAM。
改了一下马上就成功创建了。(吐血)
Mysql:ERROR 1005 (HY000): Can't create table 'morning_csu.comment' (errno: 150)
最新推荐文章于 2022-05-06 00:42:20 发布
本文分享了一次解决MySQL中因引擎不匹配导致的外键创建失败问题的经历。作者尝试在comment表中创建一个带有外键约束的字段openid,但遇到了错误提示。通过排查和使用show create table命令,最终发现是因为表的引擎类型不同(InnoDB与MyISAM),更改后问题得以解决。

4万+

被折叠的 条评论
为什么被折叠?



