数据库点滴之SQL级联删除
功能:在删除主表时,自动删除副表(外键约束)相应内容
删除包含主键值的行的操作,该值由其它表的现有行中的外键列引用。在级联删除中,还删除其外键值引用删除的主键值的所有行。
如:
- 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:更新级联
原文链接:http://www.cnblogs.com/jyshis/archive/2011/09/06/2140257.html
【编辑推荐】
- 养成一个SQL好习惯带来一笔大财富
- 告诉你,如何成就DBA职业生涯
- 经验来源于实践,今天你总结了吗?
- 客户的一次疏忽,DBA的一次噩梦
- 数据库点滴之精妙SQL语句
版权声明:
作者:后浪云
链接:https://www.idc.net/help/311662/
文章版权归作者所有,未经允许请勿转载。
THE END