您好,登錄后才能下訂單哦!
下面一起來了解下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 : 限制主表做更改
舉例:
第一步:創(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è)資訊欄目。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。