功能:在删除主表时,自动删除副表(外键约束)相应内容
删除包含主键值的行的操作,该值由其它表的现有行中的外键列引用。在级联删除中,还删除其外键值引用删除的主键值的所有行。
如:
createdatabasetempgousetempgocreatetableUserInfo(UserIdintidentity(1,1)primarykey,UserNamevarchar(20),--用户名passwordvarchar(20)notnull--密码)createtableUserDetails(idintidentity(1,1)primarykey,namevarchar(50)notnull,--真实姓名userIdint,foreignkey(userId)referencesUserInfo(UserId)ondeletecascade)insertUserInfovalues('ly','jeff')insertUserInfovalues('wzq','wzqwzq')insertUserInfovalues('lg','lglg')insertUserDetailsvalues('李四',1)insertUserDetailsvalues('王五',2)insertUserDetailsvalues('刘六',3)
SQL Server支持级联更新和删除
Oracle只支持级联删除
altertable表名addconstraint外键名foreignkey(字段名)references主表名(字段名)ondeletecascade
语法:
ForeignKey(column[,...n])referencesreferenced_table_name[(ref_column[,...n])][ondeletecascade][onupdatecascade]
注释:
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语句