[原创] mysql "can't create table errno 121"的解决
来源:ITblog.org
作者:tqjs
发表日期:2009-10-13 [关闭]
昨天出现这个问题,GOOGLE和百度的答案基本上都是"把先删掉当前数据库,之再重新建数据库、建表即可。",原来基本上都是“有可能是创建该表时出现错误所致(硬盘空间已满等),可以用以前的备份表文件考到库中,然后再drop掉。然后就可以重新建立了”,但是我没有存在这种操作情况,而且这方法仍然没法解决问题,后来再了解是因为外键foreign key name重复,因为即使在不同的表中,也不可以有fk的名称重复的,而在一个库中,u_id类似这样的字段是经常被外部使用的,所以只要改下外键名就OK了。
如下面SQL语句片段中红色部分:
CONSTRAINT `ira_u_id`
FOREIGN KEY (`u_id` )
总结:尽量不要用与字段名同名的外键名,网上搜索的结果不但要了解别人的解决方法,还要知道原因,这样即使别人方法不能解决,也可以自己想办法对症下药。
今天再次出现这个问题,记下来以作备份。
转载本站[原创]标志的文章请注明本文地址:
http://itblog.org/read.php?id=141