mysql外來鍵作用

2021-08-17 11:10:30 字數 942 閱讀 8444

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

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

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

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 外來鍵 作用說明

外來鍵 是個 或數個 指向另外乙個 主鍵的字段。外來鍵的目的是確定資料的參考完整性 referential integrity 換言之,只有被准許的資料值才會被存入資料庫內。舉例來說,假設我們有兩個 乙個 customer 裡面記錄了所有顧客的資料 另乙個 orders 裡面記錄了所有顧客訂購的資料...

mysql外來鍵的作用

mysql外來鍵的作用。最近自學資料庫mysql,然後有個疑問,一直不得其解,查詢了相關資料,最後還是沒有解決。關於外來鍵,我有自己的一些理解,但是不曉得是否正確,舉個例子來表達我的看法 假如現在需要建立乙個表,乙個什麼樣的表呢?乙個班級的學生個人資訊表 所以在設計的時候,就給表1新增乙個外來鍵,這...

MySql外來鍵約束作用

no action 指定如果試圖刪除 修改某一行,而該行的鍵被其他表的現有行中的外來鍵所引用,則產生錯誤並回滾 delete update語句。cascade set null 和 set default 允許通過刪除或更新鍵值來影響指定具有外來鍵關係的表,這些外來鍵關係可追溯到在其中進行修改的表。...