級聯刪除

級聯刪除

外鍵的級聯刪除:如果父表中的記錄被刪除,則子表中對應的記錄自動被刪除

父表——被外鍵引用的表

子表——引用父表中的鍵作為外鍵的表

基本介紹

  • 中文名:級聯刪除
  • 外文名: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:列名
referenced_table_name:外鍵參考的主鍵表名稱
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'

相關詞條

熱門詞條

聯絡我們