mysql中的外來鍵foreign key

2021-08-18 12:14:27 字數 942 閱讀 9153

一、如果一張表中有乙個非主鍵的字段指向了別一張表中的主鍵,就將該字段叫做外來鍵。

一張表中可以有多個外來鍵。

外來鍵的預設作用有兩點:

1.對子表(外來鍵所在的表)的作用:子表在進行寫操作的時候,如果外來鍵字段在父表中找不到對應的匹配,操作就會失敗。

2.對父表的作用:對父表的主鍵字段進行刪和改時,如果對應的主鍵在子表中被引用,操作就會失敗。

外來鍵的定製作用----三種約束模式:

district:嚴格模式(預設), 父表不能刪除或更新乙個被子表引用的記錄。

cascade:級聯模式, 父表操作後,子表關聯的資料也跟著一起操作。

set null:置空模式,前提外來鍵字段允許為nll,  父表操作後,子表對應的字段被置空。

使用外來鍵的前提:

1. 表儲存引擎必須是innodb,否則建立的外來鍵無約束效果。

2. 外來鍵的列型別必須與父表的主鍵型別完全一致。

3. 外來鍵的名字不能重複。

4. 已經存在資料的字段被設為外來鍵時,必須保證欄位中的資料與父表的主鍵資料對應起來。

二、新增外來鍵

1. 在建立時增加

create table my_tab1(

id int primary key auto_increment,

name varchar(10) not null,

class int,

foreign key(class)

references my_tab2(主鍵欄位名);

)charset utf8;

2. 在建立好的表中增加

alter table my_tab1 add [constraint 外鍵名] foreign key(外來鍵欄位名) references mytab2(主鍵欄位名);

三、刪除外來鍵

alter table my_tab drop foreign key 外鍵名字;

mysql 所有外來鍵 mysql中的外來鍵

mysql中的外來鍵 1.預設的外來鍵存在之後,會對資料進行約束。1 約束1 如果子表中新增的資料,外來鍵字段對應的資料如果在父表中不存在,那麼新增失敗。有資料之後 2 約束2 父表不能刪除 或者修改 乙個被子表引用的資料記錄 3.外來鍵約束 預設的使用者所能看到的約束都是外來鍵的一種約束 嚴格模式...

mysql中的外來鍵

建立乙個外來鍵 第一種方法可以在建立表的時候建立 create table student id int primary key auto increment,name varchar 10 c id int constraint student foregin foreign key c id r...

MySQL中的外來鍵

外來鍵 外來鍵就是關聯式資料庫的乙個基本特徵的實現,表明該字段的值是跟外部的某個表的字段的值 對應 的,或者也可以說來自於該外部的某個表的某個字段值,如果給乙個設定外來鍵的字段插入乙個值,而該值並沒有在該外來鍵所指定的外部表中的對應字段 現,則該值就會插入失敗,也就是資料庫內部的 約束機制 使我們的...