博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转载】Mysql创建表时报错error150
阅读量:4980 次
发布时间:2019-06-12

本文共 654 字,大约阅读时间需要 2 分钟。

从mysql数据库中导出正常数据库的脚本语句,而后使用脚本语句创建数据库的过程中,执行语句提示Can't Create Table 'XXX' erro150的错误,语句执行中断,创建table失败,仔细分析相关语句发现导致此错误的原因为创建的外键和关联的表的主键类型不匹配。

仔细查看被执行的语句,发现无法执行的table语句中含有CONSTRAINT关键字和FOREIGN KEY 外键关键字,因此判断该table的创建必须在外键表创建完成之后才可执行,找不到引用外键的表导致语句执行失败,遂先找到外键表table先创建,并写入数据,而后再执行上述错误语句,最后执行成功。

解决完此问题后,在网上查阅了相关资料,总结后有下列几个情况会出现错误Can't Create Table 'XXX' erro150。

(1)两个表格的外键关联字段的类型不一致不匹配。例如:A表和B表关联字段为teacherid,但A表中的teacherid为varchar类型,B表中的teacherid字段为int类型,此情况是无法进行外键关联的。

(2)两个表的外键的类型一致,但字符编码不一样,如A表的关联字段的字符编码为utf8_unicode_ci,B表的关联字段的字符编码为utf8_general_ci。

(3)找不到外键引用的列。如找不到外键对应的数据表table,或者外键表中不存在该列名。

 

备注:原文转载自。

转载于:https://www.cnblogs.com/xu-yi/p/10623633.html

你可能感兴趣的文章
Shell脚本之:函数
查看>>
MySQL 5.7--------SSL连接最佳实战
查看>>
linux部分命令
查看>>
Android Xutils框架HttpUtil Get请求缓存问题
查看>>
你知不知道 Cookie正在泄露你的隐私!
查看>>
BZOJ1046: [HAOI2007]上升序列
查看>>
关于文件系统的一些理解
查看>>
行编辑距离Edit Distance——动态规划
查看>>
linux命令的排列、替换与别名
查看>>
php爬虫神器cURL
查看>>
nginx第三方模块安装方法
查看>>
HDU3820 Golden Eggs(最小割)
查看>>
HDU5855 Less Time, More profit(最大权闭合子图)
查看>>
关于javascript的window.onscroll方法
查看>>
贝叶斯模型比较
查看>>
Kotlin 1 函数
查看>>
深度理解互联网思维,不可不读的50本书(转)
查看>>
SQL 创建表
查看>>
string类实现
查看>>
PHP常量
查看>>