Mysql创建外键时[Err] 1005 - Can't create table 'xx' (errno: 150) 解决方案

具体错误如下:

pymysql.err.InternalError: (1005, "Can't create table 'bigdt.#sql-3f2_f045' (errno: 150)")

看到这个错误挺让人头秃的,莫名其妙。总的来说解决方向大致分为:

1、数据类型不相同,可能一个int,一个int unsigned。

2、数据表引擎不一样,统一改成INNODB就行。

3、约束名已经存在,改一个新的名字。

语法:创建表时 指定外键约束 :

constraint   约束名称  foreign  key(外键列名)   references  关联表 (关联表的主键);

4、数据表支持的编码格式不一样。

参考博客:

https://blog.csdn.net/yangzaiqiu1986814/article/details/17009601

https://blog.csdn.net/kxp9545/article/details/73302267

猜你喜欢

转载自blog.csdn.net/hard_days/article/details/99569268