外鍵的級聯刪除:如果父表中的記錄被刪除,則子表中對應的記錄自動被刪除
父表——被外鍵引用的表
子表——引用父表中的鍵作為外鍵的表
基本介紹
- 中文名:級聯刪除
- 外文名:Foreign Keys with Cascade Delete
- 解釋:其外鍵值引用刪除主鍵值所有行
- 語言:Foreign Key
- 注釋:ref_name:外鍵要參考的表主鍵列
解釋:,語法:,注釋:,測試數據:,
解釋:
例:
employee 表中有員工的dept_id 引用department表中dept_id( 同時為deptartment主鍵 )作為外鍵,當department表(父表)中一個部門被刪除,employee表(子表)中引用這個部門的dept_id作為dept_id的記錄也自動被刪除。
語法:
Foreign Key
(column[,...n])
references referenced_table_name[(ref_column[,...n])]
[on delete cascade]
[on update cascade]
注釋:
column:列名
ref_name:外鍵要參考的表的主鍵列
on delete:刪除級聯
on update:更新級聯
SQL級聯刪除——刪除主表同時刪除從表——同時刪除具有主外鍵關係的表
create table a
(
id varchar(20) primary key,
password varchar(20) not null
)
create table b
(
id int identity(1,1) primary key,
name varchar(50) not null,
userId varchar(20),
foreign key (userId) references a(id) on delete cascade
)
表B創建了外碼userId 對應A的主碼ID,聲明了級聯刪除
測試數據:
insert a values ('11','aaa')
insert a values('23','aaa')
insert b values('da','11')
insert b values('das','11')
insert b values('ww','23')
刪除A表內id為‘11’的數據,發現B表內userId 為“11”也被資料庫自動刪除了,這就是級聯刪除
delete a where id='11'