mysql错误:ERROR 1005<HY000> Can't creat table `table_name` <erron:150>

本文介绍了一个关于MySQL数据库中,在设置列属性为非空的同时添加外键约束ONDELETESETNULL时出现的错误1005。通过实例演示了如何避免这类问题,并解释了错误产生的原因。

官方的说明:

  • 1005 (ER_CANT_CREATE_TABLE)

    Cannot create table. If the error message refers to error 150, table creation failed because a foreign key constraint was not correctly formed. If the error message refers to error –1, table creation probably failed because the table includes a column name that matched the name of an internal InnoDB table.

我犯的错误是,把某列设为非空,同时又在为该列增加外键约束的时候添加了 ON DELETE SET NULL。

 

其实我是用备份出来的.sql,重建数据库时发生这个问题的。这说明如果先为某列添加外键约束 ON DELETE SET NULL,之后再将该列设为非空,系统并不会发现这个问题。然后如果ON DELETE的话,数据库应该就会出现某种错误。

 

Thanks to: http://dev.mysql.com/doc/refman/5.0/en/innodb-error-codes.html
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值