MySQL外鍵在數(shù)據(jù)庫(kù)中的作用
MySQL外鍵是MySQL數(shù)據(jù)庫(kù)中非常重要的部分,那么,MySQL外鍵究竟起到哪些作用呢?下文就將帶您一探其中的秘密。
MySQL外鍵的作用:
保持?jǐn)?shù)據(jù)一致性,完整性,主要目的是控制存儲(chǔ)在外鍵表中的數(shù)據(jù)。 使兩張表形成關(guān)聯(lián),外鍵只能引用外表中的列的值!
例如:
a b 兩個(gè)表
a表中存有 客戶(hù)號(hào),客戶(hù)名稱(chēng)
b表中存有 每個(gè)客戶(hù)的訂單
有了外鍵后
你只能在確信b 表中沒(méi)有客戶(hù)x的訂單后,才可以在a表中刪除客戶(hù)x
建立外鍵的前提: 本表的列必須與外鍵類(lèi)型相同(外鍵必須是外表主鍵)。
指定主鍵關(guān)鍵字: foreign key(列名)
引用外鍵關(guān)鍵字: references <外鍵表名>(外鍵列名)
事件觸發(fā)限制: on delete和on update , 可設(shè)參數(shù)cascade(跟隨外鍵改動(dòng)), restrict(限制外表中的外鍵改動(dòng)),set Null(設(shè)空值),set Default(設(shè)默認(rèn)值),[默認(rèn)]no action
例如:
outTable表 主鍵 id 類(lèi)型 int
創(chuàng)建含有外鍵的表:
create table temp(
id int,
name char(20),
foreign key(id) references outTable(id) on delete cascade on update cascade);
說(shuō)明:把id列 設(shè)為MySQL外鍵 參照外表outTable的id列 當(dāng)外鍵的值刪除 本表中對(duì)應(yīng)的列篩除 當(dāng)外鍵的值改變 本表中對(duì)應(yīng)的列值改變。
【編輯推薦】






