外鍵關聯


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

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

外鍵的默認作用有兩點:

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

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

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

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

cascade:級聯模式, 父表操作后,子表關聯的數據也跟着一起操作。

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

使用外鍵的前提:

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

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

3. 外鍵的名字不能重復。

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

二、新增外鍵

1. 在創建時增加

create table stu ( stu_id int(5) unsigned zerofill not null default 0 primary key,class_id int(5), foreign key (class_id) references class (class_id))charset utf8;

2. 在創建好的表中增加

alter table my_tab1 add  foreign key(外鍵字段名) references mytab2(主鍵字段名);

如果需要命名 FOREIGN KEY 約束,以及為多個列定義 FOREIGN KEY 約束,請使用下面的 SQL 語法:

alter table stu add constraint class_id foreign key (class_id) references class (class_id);

實例

alter table stu add constraint class_id foreign key (class_id) references class (class_id);

三、刪除外鍵

alter table my_tab drop foreign key 外鍵名字;

延伸閱讀

http://www.w3school.com.cn/sql/sql_foreignkey.asp

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM