無法創(chuàng)建外鍵約束,求解
無法創(chuàng)建外鍵約束,求解
1.添加外鍵報錯,外鍵無法建立無非這幾種可能(一)確定外鍵上建立了索引,否則無法創(chuàng)建約束;(二) 外鍵的引用類型和主表列類型不一致,比如主鍵是number的,外鍵是varchar2的;(三)確定引用的主表列存在;2.建表報錯上提示此表已存在哦,drop之后再建表。
為什么在MySQL數(shù)據(jù)庫中無法創(chuàng)建外鍵
一般情況下,mysql是不贊成用外鍵的,因為這個完全可以用php等服務器腳本語言組織一些功能達到目的…如果 你一定要用,,,,
例子,簡單演示一下使用,做dage和xiaodi兩個表,大哥表是主鍵,小弟表是外鍵:建表
1CREATE?TABLE?`dage`?(?2?`id`?int(11)?NOT?NULL?auto_increment,?3?`name`?varchar(32)?default?\’\’,?4?PRIMARY?KEY?(`id`)?5)?ENGINE=InnoDB?DEFAULT?CHARSET=latin1;?6?7CREATE?TABLE?`xiaodi`?(?8?`id`?int(11)?NOT?NULL?auto_increment,?9?`dage_id`?int(11)?default?NULL,10?`name`?varchar(32)?default?\’\’,11?PRIMARY?KEY?(`id`),12?KEY?`dage_id`?(`dage_id`),13?CONSTRAINT?`xiaodi_ibfk_1`?FOREIGN?KEY?(`dage_id`)?REFERENCES?`dage`?(`id`)14)?ENGINE=InnoDB?DEFAULT?CHARSET=latin1
mysql 不能創(chuàng)建外鍵
mysql創(chuàng)建外鍵要求比較嚴格,嚴格到有時候你找不到到底哪里錯了。 1.檢查你的表是不是都是INNodb類型的,只有這種類型才可以創(chuàng)建外鍵。
2.檢查字段名是不是有錯誤。
3.檢查字段類型百科,**一樣。 4.比較隱蔽,檢查字符集,為了遷移和使用的方便,盡量使用UTF8 5.上面的都檢查了?那么我估計你的在創(chuàng)建久表的時候用的字符集與新表不同,如果我的新表用的字符集是UTF8,那么即使你把數(shù)據(jù)庫的這些字符集全部設置成UTF8你的久表字段字符集依然不會改變(要是你有特殊限定的話),那就需要你對久表的所有字段進行字符集的更換 做到以上五點,應該不會存在錯誤了- -。