mysql不能创建表150_MySQL:无法创建表(错误号:150)

juacala..

10

有很多事情可以导致errno 150,所以对于搜索这个主题的人来说,这就是我认为接近详尽的列表(Errno 150的来源):

对于errno 150或errno 121,只需键入SHOW ENGINE INNODB STATUS,就会出现一个名为"LATEST FOREIGN KEY ERROR"的部分.在此之下它会给你一个非常有用的错误信息,通常会立即告诉你什么是问题.您需要SUPER权限才能运行它,因此如果您没有,则只需测试以下方案即可.

1)数据类型不匹配:列的类型必须相同

2)没有索引的父列(或以错误的顺序索引)

3)列排序不匹配

4)在NOT NULL列上使用SET NULL

5)表排序不匹配:即使列排序匹配,在某些MySQL版本上这可能是个问题.

6)父列在父表中实际上不存在.检查拼写(也许是列的开头或结尾处的空格)

7)其中一列的索引之一是不完整的,或者列对于完整索引而言太长.请注意,MySQL(除非您调整它)的最大单列密钥长度为767字节(这对应于varchar(255)UTF列)

如果你得到一个errno 121,这里有几个原因:

1)您选择的约束名称已被采用

2)在某些系统上,如果语句和表名中存在大小写差异.如果您从一台服务器转到另一台具有不同案例处理规则的服务器,这可能会让您感到困惑.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值