亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mysql處理添加外鍵時(shí)提示error 150 問(wèn)題的解決方法

 更新時(shí)間:2011年11月15日 01:56:52   作者:  
當(dāng)你試圖在mysql中創(chuàng)建一個(gè)外鍵的時(shí)候,這個(gè)出錯(cuò)會(huì)經(jīng)常發(fā)生,這是非常令人沮喪的

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

在很多實(shí)例中,這種錯(cuò)誤的發(fā)生都是因?yàn)閙ysql一直以來(lái)都不能很好的支持的關(guān)系的問(wèn)題, 更不幸的是它也并沒(méi)有指明到底是哪一個(gè)問(wèn)題會(huì)導(dǎo)致上面那種錯(cuò)誤,下面我把導(dǎo)致這個(gè)可怕 的150錯(cuò)誤的常見(jiàn)原因列出來(lái)了,并且我以可能性的大小作了排序

已知的原因:

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

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

3, 外鍵的名字是一個(gè)已經(jīng)存在的一個(gè)鍵值了,這個(gè)時(shí)候,你應(yīng)該檢查你的數(shù)據(jù)庫(kù)以確保外健名字是唯一的,或者你在鍵名后面加上幾個(gè)隨機(jī)的字符以測(cè)試是否是這個(gè)原因。

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

5, 你可能設(shè)置了ON DELETE SET NULL, 但是相關(guān)的鍵的字段又設(shè)置成了NOTS NULL 值。你可能通過(guò)修改cascade 的屬性值或者把字段屬性設(shè)置成 allow null 來(lái)搞定這個(gè)bug.

6, 請(qǐng)確定你的Charset 和 Collate 選項(xiàng)在表級(jí)和字段級(jí)上的一致

7, 你可能設(shè)置為外鍵設(shè)置了一個(gè)默認(rèn)值,如 default=0

8, 在這個(gè)關(guān)系里面,其中的一個(gè)字段是一個(gè)混合鍵值中的一個(gè),它沒(méi)有自己獨(dú)立的索引,這時(shí),你必須為它創(chuàng)建一個(gè)獨(dú)立的索引。

9, ALTER 聲明中有語(yǔ)法錯(cuò)誤

1、外鍵的引用類(lèi)型不一樣,主鍵是int外鍵是char

2、找不到主表中 引用的列

3、主鍵和外鍵的字符編碼不一致

4.還有要建立外鍵的話,要先建立索引。沒(méi)有建立索引也會(huì)出錯(cuò)。

我的問(wèn)題解決方案是在sql后面加上了如下句話,ok!成功導(dǎo)入腳本
ENGINE=INNODB DEFAULT CHARSET=utf8;
charset對(duì)應(yīng)的換成你的主鍵表的字符集!

相關(guān)文章

  • mysql中的隔離性原理詳解

    mysql中的隔離性原理詳解

    這篇文章主要介紹了mysql隔離性的原理,多版本并發(fā)控制(MVCC)是一種用來(lái)解決?讀-寫(xiě)沖突?的無(wú)鎖并發(fā)控制,為事務(wù)分配單向增長(zhǎng)的事務(wù)ID,為每個(gè)修改保存一個(gè)版本,版本與事務(wù)ID關(guān)聯(lián),讀操作只讀該事務(wù)開(kāi)始前的數(shù)據(jù)庫(kù)的快照,需要的朋友可以參考下
    2023-08-08
  • MySQL查詢排序與查詢聚合函數(shù)用法分析

    MySQL查詢排序與查詢聚合函數(shù)用法分析

    這篇文章主要介紹了MySQL查詢排序與查詢聚合函數(shù)用法,結(jié)合實(shí)例形式分析了MySQL查詢結(jié)果排序以及查詢聚合函數(shù)相關(guān)使用技巧,需要的朋友可以參考下
    2019-11-11
  • Mysql中的CHECK約束特性詳解

    Mysql中的CHECK約束特性詳解

    這篇文章主要介紹了Mysql中的CHECK約束特性詳解的相關(guān)資料,講解的十分淺顯易懂,這里推薦給大家,需要的朋友可以參考下
    2022-08-08
  • MySQL該如何判斷不為空詳析

    MySQL該如何判斷不為空詳析

    在MySQL數(shù)據(jù)庫(kù)中,在不同的情形下,空值往往代表不同的含義,這是MySQL數(shù)據(jù)庫(kù)的一種特性,下面這篇文章主要給大家介紹了關(guān)于MySQL該如何判斷不為空的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • mysql大批量插入數(shù)據(jù)的正確解決方法

    mysql大批量插入數(shù)據(jù)的正確解決方法

    這篇文章主要介紹了mysql大批量插入數(shù)據(jù)的正確做法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • mysql中模糊查詢的四種用法介紹

    mysql中模糊查詢的四種用法介紹

    這篇文章主要介紹了mysql中模糊查詢的四種用法,需要的朋友可以參考下
    2014-03-03
  • MySQL索引下推詳細(xì)

    MySQL索引下推詳細(xì)

    這篇文章主要介紹MySQL索引下推,索引下推(ICP)是針對(duì)MySQL使用索引從表中檢索數(shù)據(jù)行的情況的優(yōu)化。下面就來(lái)介紹相關(guān)資料,需要的朋友可以參考一下
    2021-10-10
  • Mac上安裝MySQL過(guò)程分享

    Mac上安裝MySQL過(guò)程分享

    這篇文章主要介紹了Mac上安裝MySQL過(guò)程分享,本文共分4步完成,簡(jiǎn)單易懂,需要的朋友可以參考下
    2014-11-11
  • MySQL數(shù)據(jù)庫(kù)show processlist指令使用解析

    MySQL數(shù)據(jù)庫(kù)show processlist指令使用解析

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)show processlist指令使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • MySQL8.0中你必須要知道的索引新特性

    MySQL8.0中你必須要知道的索引新特性

    MySQL8.0索引新特性,支持降序索引,降序索引以降序存儲(chǔ)鍵值,下面這篇文章主要給大家介紹了關(guān)于MySQL8.0中你必須要知道的索引新特性的相關(guān)資料,需要的朋友可以參考下
    2022-11-11

最新評(píng)論