欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL外鍵使用詳解

 更新時間:2015年03月27日 14:48:04   投稿:hebedich  
兩天有人問mysql中如何加外鍵,今天抽時間總結(jié)一下。mysql中MyISAM和InnoDB存儲引擎都支持外鍵(foreign key),但是MyISAM只能支持語法,卻不能實際使用。

最近有開始做一個實驗室管理系統(tǒng),因為分了幾個表進行存儲·所以要維護表間的關聯(lián)··研究了一下MySQL的外鍵。

(1)只有InnoDB類型的表才可以使用外鍵,mysql默認是MyISAM,這種類型不支持外鍵約束

(2)外鍵的好處:可以使得兩張表關聯(lián),保證數(shù)據(jù)的一致性和實現(xiàn)一些級聯(lián)操作;

(3)外鍵的作用:

保持數(shù)據(jù)一致性,完整性,主要目的是控制存儲在外鍵表中的數(shù)據(jù)。 使兩張表形成關聯(lián),外鍵只能引用外表中的列的值!

(4)建立外鍵的前提:

兩個表必須是InnoDB表類型。
使用在外鍵關系的域必須為索引型(Index)。
使用在外鍵關系的域必須與數(shù)據(jù)類型相似

(5)創(chuàng)建的步驟

指定主鍵關鍵字: foreign key(列名)

引用外鍵關鍵字: references <外鍵表名>(外鍵列名)

(6)事件觸發(fā)限制:on delete和on update , 可設參數(shù)cascade(跟隨外鍵改動), restrict(限制外表中的外鍵改動),set Null(設空值),set Default(設默認值),[默認]no action

(7)舉例

outTable表 主鍵 id 類型 int

創(chuàng)建含有外鍵的表:

復制代碼 代碼如下:

create table temp(
id int,
name char(20),
foreign key(id) references outTable(id) on delete cascade on update cascade);

說明:把id列 設為外鍵 參照外表outTable的id列 當外鍵的值刪除 本表中對應的列篩除 當外鍵的值改變 本表中對應的列值改變。

復制代碼 代碼如下:

create table temp( id int, name char(20), foreign key(id) references outTable(id) on delete cascade on update cascade);

缺點:在對MySQL做優(yōu)化的時候類似查詢緩存,索引緩存之類的優(yōu)化對InnoDB類型的表是不起作用的,還有在數(shù)據(jù)庫整體架構(gòu)中用得同步復制也是對InnoDB類型的表不生效的,像數(shù)據(jù)庫中核心的表類似商品表請大家盡量不要是使用外鍵,如果同步肯定要同步商品庫的,加上了外鍵也就沒法通不了,優(yōu)化也對它沒作用,豈不得不償失,做外鍵的目的在于保證數(shù)據(jù)完整性,請大家通過程序來實現(xiàn)這個目的而不是外鍵,切記!

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

請您花一點時間將文章分享給您的朋友或者留下評論。我們將會由衷感謝您的支持!

相關文章

  • MySQL查詢優(yōu)化必備知識點總結(jié)

    MySQL查詢優(yōu)化必備知識點總結(jié)

    這篇文章主要給大家介紹了關于MySQL查詢優(yōu)化必備知識點的相關資料,文中介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Windows10下mysql 5.7.21 Installer版安裝圖文教程

    Windows10下mysql 5.7.21 Installer版安裝圖文教程

    這篇文章主要為大家詳細介紹了Windows10下mysql 5.7.21 Installer版安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • mysql回表查詢是什么,回表查詢的使用

    mysql回表查詢是什么,回表查詢的使用

    這篇文章主要介紹了mysql回表查詢是什么,回表查詢的使用方式,具有很好的參考價值,希望對大家有所幫助。
    2022-11-11
  • MySQL快速對比數(shù)據(jù)技巧

    MySQL快速對比數(shù)據(jù)技巧

    這篇文章主要介紹了MySQL快速對比數(shù)據(jù)的方法以及技巧分享,如果對此有興趣,一起跟著小編學習下吧。
    2018-02-02
  • MySQL中MVCC機制的實現(xiàn)原理

    MySQL中MVCC機制的實現(xiàn)原理

    這篇文章主要介紹了MySQL中MVCC機制的實現(xiàn)原理,MVCC多版本并發(fā)控制,MySQL中一種并發(fā)控制的方法,他主要是為了提高數(shù)據(jù)庫的讀寫性能,用更好的方式去處理讀寫沖突
    2022-08-08
  • MySQL庫操作和表操作詳細圖文教程

    MySQL庫操作和表操作詳細圖文教程

    在MySQL數(shù)據(jù)庫中表是一種很重要的數(shù)據(jù)庫對象,是組成數(shù)據(jù)庫的基本元素,由若干個字段組成,主要用來實現(xiàn)存儲數(shù)據(jù)記錄,這篇文章主要給大家介紹了關于MySQL庫操作和表操作的相關資料,需要的朋友可以參考下
    2023-12-12
  • QT連接MYSQL數(shù)據(jù)庫的詳細步驟

    QT連接MYSQL數(shù)據(jù)庫的詳細步驟

    這篇文章主要介紹了QT連接MYSQL數(shù)據(jù)庫的詳細步驟,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • 使用FriendFeed來提升MySQL性能的方法

    使用FriendFeed來提升MySQL性能的方法

    這篇文章主要介紹了使用FriendFeed來提升MySQL性能的方法,用其來存儲無模式的數(shù)據(jù)從而能夠維護索引,需要的朋友可以參考下
    2015-06-06
  • 計算機管理服務中找不到mysql的服務的解決辦法

    計算機管理服務中找不到mysql的服務的解決辦法

    MySQL是一種流行的開源關系型數(shù)據(jù)庫管理系統(tǒng),用于存儲和管理大量數(shù)據(jù),在計算機管理中,啟動MySQL服務是一項重要的任務,因為它可以確保數(shù)據(jù)庫系統(tǒng)的順利運行,這篇文章主要給大家介紹了關于計算機管理服務中找不到mysql的服務的解決辦法,需要的朋友可以參考下
    2023-05-05
  • MySQL出現(xiàn)莫名其妙的斷開連接以及解決方案

    MySQL出現(xiàn)莫名其妙的斷開連接以及解決方案

    這篇文章主要介紹了MySQL出現(xiàn)莫名其妙的斷開連接以及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評論