功能:在删除主表时,自动删除副表(外键约束)相应内容
删除包含主键值的行的操作,该值由其它表的现有行中的外键列引用。在级联删除中,还删除其外键值引用删除的主键值的所有行。
如:
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)
sqlserver 支持级联更新和删除
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:更新级联
- 推荐文章
- Spring Batch 批处理框架介绍
- 项目 05 改善上传图片处理
- 项目 04 数据库迁移工具,增加用户系统-用户中心
- 项目 03 用户登录与注册
- 项目 02 图片上传和展示
- 项目 01 项目简介和基本页面
- 虚拟环境建立相关操作
- tornado 11 异步编程
- tornado 10 长轮询和 websocket
- tornado 09 cookie和session
- tornado 08 数据库-ORM-SQLAlchemy-表关系和简单登录注册
- scrapy-pipeline,mysql
- scrapy
- 协程,greenlet,gevent
- 使用池实现并发服务器
- python自带的进程池及线程池
- 线程池的简单实现
- 重复利用的线程
- 消费者与生产者模式的概念
- 数据结构之队列
- 解决360浏览器兼容模式的页面显示问题
- .NET知识点汇总
- C# 6.0新加特性
- C# 5.0新加特性
- C# 4.0新加特性
- C# 3.0新加特性
- C# 2.0新加特性
- C#中null、""、string.empty区别
- C#使用SQLite
- 页面 关于处理如何点击按钮实现定位到某一位置操作