激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - MYSQL建立外鍵失敗幾種情況記錄Can't create table不能創(chuàng)建表

MYSQL建立外鍵失敗幾種情況記錄Can't create table不能創(chuàng)建表

2019-11-22 14:42MYSQL教程網 Mysql

當你試圖在mysql中創(chuàng)建一個外鍵的時候,這個出錯會經常發(fā)生,這是非常令人沮喪的。

像這種不能創(chuàng)建一個.frm 文件的報錯好像暗示著操作系統(tǒng)的文件的權限錯誤或者其它原因,但實際上,這些都不是的,事實上,這個mysql報錯已經被報告是一個mysql本身的bug并出現在mysql 開發(fā)者列表當中很多年了,然而這似乎又是一種誤導。 

在很多實例中,這種錯誤的發(fā)生都是因為mysql一直以來都不能很好的支持的關系的問題, 更不幸的是它也并沒有指明到底是哪一個問題會導致上面那種錯誤,下面我把導致這個可怕 的150錯誤的常見原因列出來了,并且我以可能性的大小作了排序,已知的原因: 

1、 兩個字段的類型或者大小不嚴格匹配,例如,如果一個是INT(10), 那么外鍵也必須設置成INT(10), 而不是 INT(11) 也不能是 TINYINT. 你得使用 SHOW 命令來查看字段的大小,因為一些查詢?yōu)g覽器有時候把 int(10) 和int(11) 都顯示為integer。另外,你還必須確定兩個字段是否一個為 SIGNED,而另一個又是UNSIGNED, 這兩字段必須嚴格地一致匹配,更多關于signed 和 unsigned 的信息,請參閱:http://www.verysimple.com/blog/?p=57 

2、 你試圖引用的其中一個外鍵沒有建立起索引,或者不是一個primary key , 如果其中一個不是primary key 的,你必須為它創(chuàng)建一個索引。 

3、外鍵的名字是一個已經存在的一個鍵值了,這個時候,你應該檢查你的數據庫以確保外健名字是唯一的,或者你在鍵名后面加上幾個隨機的字符以測試是否是這個原因。 

4、 其中一個或者兩個表是MyISAM引擎的表,若想要使用外鍵約束,必須是InnoDB引擎,(實際上,如果兩個表都是MyISAM 引擎的,這個錯誤根本不會發(fā)生,但也不會產生外鍵),你可以通過查詢?yōu)g覽器來設置表的引擎類型 

5、 你可能設置了ON DELETE SET NULL, 但是相關的鍵的字段又設置成了NOTS NULL 值。你可能通過修改cascade 的屬性值或者把字段屬性設置成 allow null 來搞定這個bug. 

6、 請確定你的Charset 和 Collate 選項在表級和字段級上的一致 

7、 你可能設置為外鍵設置了一個默認值,如 default=0 

8, 在這個關系里面,其中的一個字段是一個混合鍵值中的一個,它沒有自己獨立的索引,這時,你必須為它創(chuàng)建一個獨立的索引。 

9、 ALTER 聲明中有語法錯誤 

最后:建立外鍵有點麻煩,可以直接用Myeclipse生成ddl。。。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品com | 91不雅视频 | 91精品国产乱码久久久久久久久 | 欧美人与牲禽动交精品一区 | www噜噜偷拍在线视频 | 欧美日穴视频 | 久久久久国产精品久久久久 | 国产成年人在线观看 | 日韩电影一区二区三区 | 米奇电影网 | 免费看一区二区三区 | 国产一级淫片a级aaa | 午夜视频在线免费观看 | 老女人碰碰在线碰碰视频 | 一级免费特黄视频 | 模特三级在线观看 | 久久久成人精品视频 | 永久免费不卡在线观看黄网站 | 成人av一区二区免费播放 | 欧美一级毛片大片免费播放 | 久草在线手机观看 | 久久久久亚洲视频 | 一级免费视频 | 精品国产一区二区三区四 | 精品视频在线免费看 | 久久国产精品99久久人人澡 | hd性videos意大利复古 | av中文一区| 美女在线视频一区二区 | 正在播放91视频 | 一区二区三区欧美精品 | 黄色片网站在线免费观看 | 免费久久久久久久 | 在线免费日韩 | 欧美一区在线观看视频 | 91久久精品一二三区 | 特级黄aaaaaaaaa毛片 | 青青草国产在线视频 | 视频一区二区视频 | 久久久资源网 | www.9191.com|