SQL 级联删除与级联更新的方法

复制代码 代码如下:
on delete cascade

当你更新或删除主键表时,那么外键表也会跟随一起更新或删除,需要在建表时设置级联属性

CREATE TABLE Countries(CountryId INT PRIMARY KEY)
INSERT INTO Countries (CountryId) VALUES (1)
INSERT INTO Countries (CountryId) VALUES (2)
INSERT INTO Countries (CountryId) VALUES (3)

CREATE TABLE Cities( CityId INT PRIMARY KEY  ,CountryId INT REFERENCES Countries ON DELETE CASCADE);
INSERT INTO Cities VALUES(1,1)
INSERT INTO Cities VALUES(2,1)
INSERT INTO Cities VALUES(3,2)

CREATE TABLE Buyers(CustomerId INT PRIMARY KEY ,CityId INT REFERENCES Cities ON DELETE CASCADE);
INSERT INTO Buyers  VALUES(1,1),
INSERT INTO Buyers  VALUES(2,1)
INSERT INTO Buyers  VALUES(3,2)

此外还有级联更新
on update cascade

时间: 2024-09-12 03:08:57

SQL 级联删除与级联更新的方法的相关文章

SQL Server数据库基础的级联删除、级联更新与三层架构之窥

一.定义 级联删除是指删除包含主键值的行的操作,该值由其它表的现有行中的外键引用.在级联删除中,还删除其外键值引用删除的主键值的所有行. 级联更新是指更新主键值的操作,该值由其它表的现有行中的外键引用.在级联更新中,更新所有外键值与新的主键值相匹配. 三层架构是指一种架构思想.通常他将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的是为了"高内聚.低耦合"的思想. 二.特点 大家都知道,级联删除与级联更新操作,都是指主表的信息删除或更新后,

[NHibernate]一对多关系(级联删除,级联添加)

目录 写在前面 文档与系列文章 一对多关系 一个例子 级联删除 级联保存 总结 写在前面 在前面的文章中,我们只使用了一个Customer类进行举例,而在客户.订单.产品中它们的关系,咱们并没有涉及,比如一个客户可以有一个或者多个订单,在数据库中变现为"主外键关系",有时也喜欢称为"父子关系".那么就让我们一起学习,在nhibernate中,是如何处理这种关系的吧? 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFacto

sql批量删除数据的几种方法介绍

sql批量删除数据的几种方法介绍 a是A表的一列,存在a=1的数据 1.Delete from A where exists (Select 1 where a=1)  2.Delete from A where exists (Select 1 from A where a=1) 结果 1:只删除a=1一条数据,2:删除所有数据. ,里面的数据是yyyy.mm.dd格式的,另外由表单提交要删除的某一年的数据,该表单名为Year,我现在想通过一个SQL语句批量删除某一年的所有记录,比如删除所有该

sql update多表联合更新的方法

sql update多表联合更新的方法 可以根据一个表的字段的值 像关联查询一样 修改 一个表的字段值 和另一个表关联 update 表一 set 表一.列名= 表二.列名 from 表一,表二 where 表一.ID = 表二.ID 本文总结了Update语句更新多表时在SQL Server,Oracle,MySQL三种数据库教程中的用法.我也试 了SQLite数据库,都没成功,不知是不支持多表更新还是咋的. 在本例中: 我们要用表gdqlpj 中的gqdltks,bztks字段数据去更新la

Oracle数据库中的级联查询、级联删除、级联更新操作教程_oracle

级联查询在ORACLE 数据库中有一种方法可以实现级联查询 select * //要查询的字段 from table //具有子接点ID与父接点ID的表 start with selfid=id //给定一个startid(字段名为子接点ID,及开始的ID号) connect by prior selfid=parentid //联接条件为子接点等于父接点,不能反 这个SQL主要用于菜单的级联查询,给一个父接点可以查出所有的子接点.及子接点的子接点,一查到底,很实用.不过呢这个程序只能在orac

SQL 级联删除与级联更新的方法_MsSql

复制代码 代码如下: on delete cascade 当你更新或删除主键表时,那么外键表也会跟随一起更新或删除,需要在建表时设置级联属性 CREATE TABLE Countries(CountryId INT PRIMARY KEY) INSERT INTO Countries (CountryId) VALUES (1) INSERT INTO Countries (CountryId) VALUES (2) INSERT INTO Countries (CountryId) VALUE

在SQL中删除重复记录的多种方法

学习sql有一段时间了,发现在我建了一个用来测试的表(没有建索引)中出现了许多的重复记录.后来总结了一些删除重复记录的方法,在Oracle中,可以通过唯一rowid实现删除重复记录:还可以建临时表来实现...这个只提到其中的几种简单实用的方法,希望可以和大家分享(以表employee为例). SQL> desc employee Name Null? Type ----------------------------------------- -------- -----------------

SQL Update多表联合更新的方法_数据库其它

有些时候我们需要同时更新多个表中的数据那么就需要用到下面方法了: (1) sqlite 多表更新方法 复制代码 代码如下: //---------------------------------- update t1 set col1=t2.col1 from table1 t1 inner join table2 t2 on t1.col2=t2.col2 这是一个非常简单的批量更新语句 在SqlServer中支持此语法 sqlite中却不支持 sqlite中可转换为 如下语法 复制代码 代码

讲解SQL与Oracle外键约束中的级联删除

最近软件系统中要删除一条记录,就要关联到同时删除好多张表,它们之间还存 在着约束关系.所以考虑到在创建表时加上约束关系,详细内容如下: SQL的外键约束可以实现级联删除与级联更新; ORACLE则只充许级联删除. SQL级联删除与级联更新使用格式: CREATE TABLE A001(ID INT PRIMARY KEY,NAME VARCHAR(20)) CREATE TABLE A002(ID INT REFERENCES A001(ID)ON DELETE CASCADE ON UPDAT