Mysql-外鍵foreign key
阿新 • • 發佈:2018-05-27
incr foreign 不能 作用 for 新增 匹配 否則 必須
1、定義:如果一張表中有一個字段指向另一張表的主鍵,就子表中將該主鍵字段叫做外鍵。
一張表中可存在多個外鍵
2、外鍵的作用
保持數據的一致性、完整性
a、對子表(外鍵所在的表)的作用:子表在進行寫操作的時候,如果外鍵字段在父表中找不到對應的匹配,操作就會失敗。
b、對父表的作用:對父表的主鍵字段進行刪除和更改時,如果對應的主鍵在子表中被引用,操作就會失敗
3、外鍵的定制作用----三種約束模式:
district:嚴格模式(默認), 父表不能刪除或更新一個被子表引用的記錄。
cascade:級聯模式, 父表操作後,子表關聯的數據也跟著一起操作。
set null:置空模式,前提外鍵字段允許為NLL, 父表操作後,子表對應的字段被置空
4、使用外鍵的前提:
1. 表儲存引擎必須是innodb,否則創建的外鍵無約束效果。
2. 外鍵的列類型必須與父表的主鍵類型完全一致。
3. 外鍵的名字不能重復。
4. 已經存在數據的字段被設為外鍵時,必須保證字段中的數據與父表的主鍵數據對應起來。
5、新增外鍵
a、建表時添加
CREATE TABLE my_tab1( id int PRIMARY KEY auto_increment, name varchar(10) not null, class int, FOREIGN KEY(class) REFERENCESmy_tab2(主鍵字段名) )charset utf8
b、在建好的表中添加
ALTER TABLE my_tab1 ADD [constraint 外鍵名] FOREIGN KEY(外鍵字段名) REFERENCES my_tab2(主鍵字段名)
6、刪除外鍵
ALERT TABLE my_tab DROP FOREIGN KEY 外鍵名稱
Mysql-外鍵foreign key