數(shù)據(jù)庫點滴之SQL級聯(lián)刪除
作者:我的點點滴滴
刪除包含主鍵值的行的操作,該值由其它表的現(xiàn)有行中的外鍵列引用。在級聯(lián)刪除中,還刪除其外鍵值引用刪除的主鍵值的所有行。
功能:在刪除主表時,自動刪除副表(外鍵約束)相應(yīng)內(nèi)容
刪除包含主鍵值的行的操作,該值由其它表的現(xiàn)有行中的外鍵列引用。在級聯(lián)刪除中,還刪除其外鍵值引用刪除的主鍵值的所有行。
如:
- 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支持級聯(lián)更新和刪除
Oracle只支持級聯(lián)刪除
- 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:刪除級聯(lián)
- on update:更新級聯(lián)
原文鏈接:http://www.cnblogs.com/jyshis/archive/2011/09/06/2140257.html
【編輯推薦】
責(zé)任編輯:艾婧
來源:
我的點點滴滴的博客