程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL外鍵應用詳解

MySQL外鍵應用詳解

編輯:MySQL綜合教程

MySQL外鍵應用詳解。本站提示廣大學習愛好者:(MySQL外鍵應用詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL外鍵應用詳解正文


比來有開端做一個試驗室治理體系,由於分了幾個表停止存儲·所以要保護表間的聯系關系··研討了一下MySQL的外鍵。

(1)只要InnoDB類型的表才可使用外鍵,mysql默許是MyISAM,這類類型不支撐外鍵束縛

(2)外鍵的利益:可使得兩張表聯系關系,包管數據的分歧性和完成一些級聯操作;

(3)外鍵的感化:

堅持數據分歧性,完全性,重要目標是掌握存儲在外鍵表中的數據。 使兩張表構成聯系關系,外鍵只能援用表面中的列的值!

(4)樹立外鍵的條件:

兩個表必需是InnoDB表類型。
應用在外鍵關系的域必需為索引型(Index)。
應用在外鍵關系的域必需與數據類型類似

(5)創立的步調

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

援用外鍵症結字: references <外鍵表名>(外鍵列名)

(6)事宜觸發限制:on delete和on update , 可設參數cascade(追隨外鍵修改), restrict(限制表面中的外鍵修改),set Null(設空值),set Default(設默許值),[默許]no action

(7)舉例

outTable表 主鍵 id 類型 int

創立含有外鍵的表:


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做優化的時刻相似查詢緩存,索引緩存之類的優化對InnoDB類型的表是不起感化的,還有在數據庫全體架構頂用得同步復制也是對InnoDB類型的表不失效的,像數據庫中焦點的表相似商品表請年夜家盡可能不如果應用外鍵,假如同步確定要同步商品庫的,加上了外鍵也就沒法通不了,優化也對它沒感化,豈不能不償掉,做外鍵的目標在於包管數據完全性,請年夜家經由過程法式來完成這個目標而不是外鍵,切記!

以上所述就是本文的全體內容了,願望年夜家可以或許愛好。

請您花一點時光將文章分享給您的同伙或許留下評論。我們將會由衷感激您的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved