资源描述:
《mysql中error1005信息处理》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、MYSQL中ERROR1005信息处理>>教育资源库 在使用MySQL的时候,在操作不当时,很容易出现ERROR1005(HY000):Can'tcreatetable这类错误。很多站长朋友可能需要排查很久才会找到问题的原因其实很简单,希望这篇文章可以对站长朋友以及Mysql初学者一点帮助。 MYSQL官方提供的问题原因: 在信息中有一组【LATESTFOREIGNKEYERROR】会有最近错误的详细描述和解决办法。 Cannotfindanindexinthereferencedtablensappearasthe
2、firstcolumns,orcolumntypesinthetableandthereferencedtabledonotmatchforconstraint. (译:不能在被reference的表里找到包含被reference字段的索引,或者是两个关联字段类型不匹配) 以下介绍两个示例: 示例一: createtablebooktype( btid int(5)unsignedzerofillauto_incrementnotnullprimarykey, btnamevarchar(100)notnullunique,
3、 btnotetext); createtablebooks( bidint(5)unsignedzerofillauto_incrementnotnullprimarykey, bnamechar(30)notnull, isbnchar(50)notnull, authorchar(30)notnull, press text, summarytext, bcountintnotnulldefault0, btid int, foreignkey(btid)referencesbooktype(btid)); 出现的报错:E
4、RROR1005(HY000):Can'tcreatetable'.bookdatabooks.frm'(errno:150) 主要问题以及解决办法是:foreignkey(btid)referencesbooktype(btid)中books表的btid 是int和booktype表中的btid设置的关联字段类型不匹配,books表中btid改正成:btid int(5)unsignedzerofill,就不会报错了,创建表和修改表地时候常常一步小小就忘记了这个. 示例二: MySQL里创建外键时(A
5、ltertablexxxaddconstraintfk_xxxforeignkey),提示错误,但只提示很简单的信息:ERROR1005(HY000):Can'tcreatetable'.env_mon#sql-698_6.frm'(errno:150)。根本起不到解决问题的作用。 (以下红色部分为已经修改) droptableifexistsproducts;createtableproducts(id int notnullauto_increment,title varchar(100)notnul
6、l,descriptiontext notnull,image_urlvarchar(200)notnull,price decimal(10,2)notnull,date_available datetimenotnull,primarykey(id))type=innodb;droptableifexistsline_items; createtableline_items(id int notnullauto_increment,product_idint notnull,quantityint notnulldefault
7、0,unit_pricedecimal(10,2)notnull, constraintfk_items_productforeignkey(product_id)referencesproducets(id), index(product_id)primarykey(id))type=innodb; 出现的报错:ERROR1005:Can'tcreatetable 主要问题以及解决办法是:1,MySQL支持外键约束,并提供与其它DB相同的功能,但表类型必须为InnoDB2、建外键的表的那个列要加上index>>>>
8、这篇文章来自..,。