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

(0)

相关推荐

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

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

  • 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) VALUE

  • 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中可转换为 如下语法 复制代码 代码

  • MySQL使用外键实现级联删除与更新的方法

    本文实例讲述了MySQL使用外键实现级联删除与更新的方法.分享给大家供大家参考,具体如下: MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定在删除.更新父表时,对子表进行的相应操作,包括RESTRICT.NO ACTION.SET NULL和CASCADE.其中RESTRICT和NO ACTION相同,是指在子表有关联记录的情况下父表不能更新:CASCADE表示父表在更新或者删除时,更

  • 解析Oracle中多表级联删除的方法

    表间的关系比较复杂,数据量又比较多,一个个删绝对会出大问题.于是实验了几种解决的办法,现小结一下. 方法一:创建约束时设定级联删除(但一般由于各种原因或出于各种考虑在创建数据库时没有设定级联删除)SQL语句: 复制代码 代码如下: CREATE TABLE "U_WEN_BOOK"."FARTAB" ("FAR_ID" NUMBER(10) NOT NULL,"FAR_NAME" VARCHAR2(10), "OTH

  • php创建多级目录与级联删除文件的方法示例

    本文实例讲述了php创建多级目录与级联删除文件的方法.分享给大家供大家参考,具体如下: 创建多级目录 mkdir函数只能创建一级的目录,如果我们想创建多级目录,则需要自己编写函数. <?php $path = "one/two/three/four"; function mkdir_p($path,$mode=0700){ $arr = explode("/",$path); $path = ''; foreach($arr as $v){ $path .=

  • ASP.NET Core使用EF保存数据、级联删除和事务使用

    目录 1.简介 2.基本保存 2.1添加数据 2.2更新数据 2.3删除数据 2.4单个SaveChanges中的多个操作 3.保存关联数据 3.1添加关联数据 3.2添加相关实体 3.3更改关系 4.级联删除 5.事务 5.1控制事务 1.简介 每个上下文实例都有一个ChangeTracker,它负责跟踪需要写入数据库的更改.更改实体类的实例时,这些更改会记录在ChangeTracker中,然后在调用SaveChanges时会被写入数据库中.此数据库提供程序负责将更改转换为特定于数据库的操作(

  • django多对多表的创建,级联删除及手动创建第三张表

    创建一张作者表,author,创建外键与book表,多对多关系 ,外键字段放在那张表都可以, class Author(models.Model): name = models.CharField(max_length=32) #在Author表中创建第三张表,与book表创建多对多关系一样的效果 # books = models.ManyToManyField(Book) #再重新生成数据库,因为新增了多对多关系,book表会新增字段,所以直接重新生成数据库就会报错, 在book表里,关联Au

  • Mybatis 级联删除的实现

    需求描述 今日需求是删除资源时同时删除与该资源绑定的角色数据,有两张表,资源表.角色与资源绑定表,级联删除的时候有两种方法:①建立表时直接建立约束,当父表删除数据时数据库会自动去删除子表中的数据,②通过代码实现级联删除,先删除子表数据,然后删除父表中的数据. 通过数据库实现 可以参考博文://www.jb51.net/article/88148.htm 这种方式假如我们要删除父表的数据,子表的数据就会被删除,而我们的业务需求是表中是否删除由is_delete字段来标识,所以这种方式是可以实现级联

  • SQL Server删除表及删除表中数据的方法

    本文介绍SQL Server中如何删除表,如何删除表中的数据.在删除表数据时有delete和truncate两种方法,delete和truncate有什么区别呢? SQL Server,我们现在基本上使用的最古老的版本应该是SQL Server 2000吧,应该没有更早的版本了吧?!从SQL Server 2000开始,到SQL Server 2005,2008,2012等,T-SQL的处理能力越来越强.今天我们就来说说如何使用T-SQL脚本来删除表,以及删除表中的数据. 删除表和删除表数据这是

随机推荐