功能:在刪除主表時,自動刪除副表(外鍵約束)相應內容
刪除包含主索引值的行的操作,該值由其它表的現有行中的外鍵列引用。在串聯刪除中,還刪除其外索引值引用刪除的主索引值的所有行。
如:
- create database temp
- go
- use temp
- go
-
- create table UserInfo
- (
- UserId int identity(1,1) primary key ,
- UserName varchar(20), --使用者名稱
- password varchar(20) not null --密碼
- )
-
- create table UserDetails
- (
- id int identity(1,1) primary key,
- name varchar(50) not null, --真實姓名
- userId int,
- foreign key (userId) references UserInfo(UserId) on delete cascade
- )
-
- insert UserInfo values ('ly','jeff')
- insert UserInfo values('wzq','wzqwzq')
- insert UserInfo values('lg','lglg')
-
- insert UserDetails values('李四',1)
- insert UserDetails values('王五',2)
- insert UserDetails values('劉六',3)
SQL Server支援串聯更新和刪除
Oracle只支援串聯刪除
- alter table 表名
- add constraint 外鍵名
- foreign key(欄位名) references 主表名(欄位名)
- on delete cascade
文法:
- 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:更新級聯