外來鍵約束 外來鍵級聯操作

2021-10-17 11:55:49 字數 2691 閱讀 8473

-- 建立db2資料庫

create

database db2;

-- 使用db2資料庫

use db2;

/* 外來鍵約束

標準語法:

constraint 外鍵名 foreign key (本表外來鍵列名) references 主表名(主表主鍵列名)

*/-- 建表時新增外來鍵約束

-- 建立user使用者表

create

table

user

( id int

primary

keyauto_increment

,-- id

name varchar(20

)not

null

-- 姓名);

-- 新增使用者資料

insert

into

user

values

(null

,'張三'),

(null

,'李四');

-- 建立orderlist訂單表

create

table orderlist(

id int

primary

keyauto_increment

,-- id

number varchar(20

)not

null

,-- 訂單編號

uid int

,-- 外來鍵列

constraint ou_fk1 foreign

key(uid)

references

user

(id));

-- 新增訂單資料

insert

into orderlist values

(null

,'hm001',1

),(null

,'hm002',1

),(null

,'hm003',2

),(null

,'hm004',2

);-- 新增乙個訂單,但是沒有真實使用者。新增失敗

insert

into orderlist values

(null

,'hm005',3

);-- 刪除李四使用者。刪除失敗

delete

from

user

where name=

'李四';/*

刪除外來鍵約束

標準語法:

alter table 表名 drop foreign key 外鍵名;

*/-- 刪除外來鍵約束

alter

table orderlist drop

foreign

key ou_fk1;

/* 建表後單獨新增外來鍵約束

標準語法:

alter table 表名 add constraint 外鍵名 foreign key (本表外來鍵列名) references 主表名(主鍵列名);

*/-- 新增外來鍵約束

alter

table orderlist add

constraint ou_fk1 foreign

key(uid)

references

user

(id)

;

/*

新增外來鍵約束,同時新增級聯更新 標準語法:

alter table 表名 add constraint 外鍵名 foreign key (本表外來鍵列名) references 主表名(主鍵列名)

on update cascade;

新增外來鍵約束,同時新增級聯刪除 標準語法:

alter table 表名 add constraint 外鍵名 foreign key (本表外來鍵列名) references 主表名(主鍵列名)

on delete cascade;

新增外來鍵約束,同時新增級聯更新和級聯刪除 標準語法:

alter table 表名 add constraint 外鍵名 foreign key (本表外來鍵列名) references 主表名(主鍵列名)

on update cascade on delete cascade;

*/-- 刪除外來鍵約束

alter

table orderlist drop

foreign

key ou_fk1;

-- 新增外來鍵約束,同時新增級聯更新和級聯刪除

alter

table orderlist add

constraint ou_fk1 foreign

key(uid)

references

user

(id)

onupdate

cascade

ondelete

cascade

;-- 將李四這個使用者的id修改為3,訂單表中的uid也自動修改

update

user

set id=

3where id=2;

-- 將李四這個使用者刪除,訂單表中的該使用者所屬的訂單也自動刪除

delete

from

user

where id=

3;

DQL 外來鍵約束,級聯更新

1 create table emp 建立emp表 2 id int primary keyauto increment,3 name varchar 30 4 age int 5 dep name varchar 30 部門名稱 6 dep location varchar 30 部門位址7 8 ...

mysql外來鍵和外來鍵約束

1.mysql中 鍵 和 索引 的定義相同,所以外來鍵和主鍵一樣也是索引的一種。不同的是mysql會自動為所有表的主鍵進行索引,但是外來鍵字段必須由使用者進行明確的索引。用於外來鍵關係的字段必須在所有的參照表中進行明確地索引 2.如果表a的主關鍵字是表b中的字段,則該字段稱為表b的外來鍵,表a稱為主...

mysql 外來鍵和外來鍵約束

1.外來鍵 如果公共關鍵字在乙個關係中是主關鍵字,那麼這個公共關鍵字被稱為另乙個關係的外來鍵。就是a表的主鍵,被用到了b表中,此時它就成了外來鍵 2.外來鍵約束 如果想要插入或者更新外來鍵的值,資料庫會和引用表中字段的資料進行驗證,如果插入或更改的值不在被引用的表中,則插入失敗 外來鍵的作用就是保證...