溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql外鍵工具作用及操作方法

發(fā)布時間:2020-05-13 10:57:40 來源:億速云 閱讀:285 作者:三月 欄目:MySQL數(shù)據(jù)庫

下面一起來了解下mysql外鍵工具作用及操作方法,相信大家看完肯定會受益匪淺,文字在精不在多,希望mysql外鍵工具作用及操作方法這篇短內容是你想要的。

外鍵定義:兩個有關聯(lián)關系的表,其中一個表中的某個字段a指向另一個表中的主鍵b,我們稱a是外鍵。在它們兩個的關系中,b所在表我們稱之為主表,而a所在字段我們稱之為從表。

如果沒有定義兩個表之間的關聯(lián)操作,那么a只是邏輯上的外鍵,定義其之間的關聯(lián)操作后,a才是我們今天要討論的真正外鍵。

語法:foreign key (字段名) references 主表名 (字段名) on [update | delete]  [ cascade | set null | restrict ]

(1)可定義的級聯(lián)操作:

on delete  定義當主表刪除時記錄時從表的操作

on update 定義當主表更新記錄時執(zhí)行的操作

(2)可設置的動作:

cascade : 串聯(lián)操作,就是子表跟主表動作一樣,刪除或更新

set null : 當主表更改時,子表的外鍵字段設置為null

restrict : 限制主表做更改

mysql外鍵工具作用及操作方法

舉例:

第一步:創(chuàng)建兩張表 班級  和  學生,并且以class_id為外鍵對班級表關聯(lián)。

create table class (
id int primary key auto_increment,
class_name varchar(20) not null
);
create table student (
id int primary key auto_increment,
name varchar(20) not null,
class_id int ,
foreign key (class_id) references class (id)
on delete cascade
on update set null
);
第二步:分別向兩張表添加數(shù)據(jù)

insert into class values
(null,'A'),
(null,'B');

insert into student values
(null,'xiaohong',1),
(null,'xiaoming',2),
(null,'xiaogang',1);
此時我們首先看一下表中的數(shù)據(jù),以便跟我們稍后的測驗作數(shù)據(jù)對比。

第三步:刪除和修改,并查看結果
剛才我們設置的是 on delete cascade,讓我們來驗證一下結果。

當我們刪掉 class 表中的 id=1 的數(shù)據(jù)后,student 表中,class_id 為1的數(shù)據(jù)默認都幫我們刪掉了。

再來一個更新的試試:

剛才我們設置的 on update set null

從數(shù)據(jù)中我們可以看到,當我們把class表中id=2的記錄值的id改為3的時候,student表中class_id為2的記錄class_id變?yōu)榱薾ull。

看完mysql外鍵工具作用及操作方法這篇文章后,很多讀者朋友肯定會想要了解更多的相關內容,如需獲取更多的行業(yè)信息,可以關注我們的行業(yè)資訊欄目。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI