Welcome to the website navigation,本站只接受合法正规的企业网站,欢迎站长们提交你的网站获得展示和流量有任何问题请联系站长,欢迎大家加入本站。

                
提交网站
  • 网站:76083
  • 待审:5
  • APP:577
  • 文章:304411
  • 会员:56004
文字内链包年1000元 文字内链包年1000元 文字内链包年1000元 AI办公网站 AI绘画工具 AIchat

名站网址导航为大家提供关于数据库教程相关的教程网站知识。

Oracle多表级联更新详解hF9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

用游标实现,我觉得绝对这种具体相关方法比较安全的。 --首先定一个游标把需要用到的一些数据存放到游标中:,复制具体相关代码 具体相关代码如下:,declare   CURSOR D_CURSOR_CUS_INFO IS     select t3.id_           as id_,            t3.owe_money_  ,复制具体相关代码 具体相关代码如下:,begin         FOR everyRow IN D_CURSOR_CUS_INFO         loop          update T_CUS_YEAR_STATUS t    ,hF9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

表间的关系比较复杂,数据量又比较多,一个个删绝对会出大问题。于是实验了几种解决的办法,现小结一下。

具体相关方法一:创建约束时设定级联删除
(但一般由于各种原因或出于各种考虑在创建网站数据库时没有设定级联删除)
SQL数据库语句:

复制具体相关代码 具体相关代码如下:hF9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


CREATE TABLE "U_WEN_BOOK"."FARTAB" ("FAR_ID" NUMBER(10) NOT NULL,
"FAR_NAME" VARChAR2(10), "OThER_NAME" VARChAR2(10),
CONSTRAINT "PK_FER" PRIMARY KEY("FAR_ID"))

CREATE TABLE "U_WEN_BOOK"."ChILTAB" ("ChIL_ID" NUMBER(10) NOT
    NULL, "ChIL_NAME" VARChAR2(10), "ChIL_OThER" VARChAR2(10),
    "FAR_ID" NUMBER(10) NOT NULL,
    CONSTRAINT "PK_ChIL" PRIMARY KEY("ChIL_ID"),
    CONSTRAINT "FK_ChIL" FOREIGN KEY("FAR_ID")
REFERENCES "U_WEN_BOOK"."FARTAB"("FAR_ID") ON DELETE CASCADE)
hF9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


具体相关方法二:创建约束时没有使用级联删除,在需要使用级联删除时,删除原来的外键约束,重建带级联删除的约束
(实验证明完全可行,注意需要对已经存在的数据进行验证,否则新建的约束对原有数据不具备效率,默认是验证的,若强制要求不验证,使用NOVALIDATE关键词。还有外键引用的只能是唯一主键)
SQL数据库语句:

复制具体相关代码 具体相关代码如下:hF9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


ALTER TABLE "U_WEN_BOOK"."GChILTAB1"
    DROP CONSTRAINT "FK_G1"
ALTER TABLE "U_WEN_BOOK"."GChILTAB1"
  ADD (CONSTRAINT "FK_G1" FOREIGN KEY()
    REFERENCES "U_WEN_BOOK"."ChILTAB"()
    ON DELETE CASCADE)
(这样就可以级联删除了,删除完后,假如如果不放心这样的约束条件,并且不嫌麻烦可以再重建为不带级联删除等外键约束,防止误操作办法)
hF9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


具体相关方法三:使用触发器(创建时没有级联删除)
(比较灵活,可以根据自己编写的程序进行,引用的不是唯一主键也可以)
(1)创建表及插入数据
SQL数据库语句:

复制具体相关代码 具体相关代码如下:hF9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


create   table orderCombine   (  
O_Id                     VARChAR2(16)     not   null,  
OrderId           VARChAR2(15)     not   null,                        
FormerId         VARChAR2(16)     not   null,  
constraint   PK_ORDERCOMBINE   primary   key   (FormerId) );
   create   table   VIPForm     (  
V_Id                     VARChAR2(16)       not   null,              
IsValid           ChAR(1)   default   '0'     not   null     ,                  
Constraint fk_vipform foreign key(V_id)   references   ordercombine(formerid) );  
insert into orderCombine values('1','1','1'); insert into orderCombine values('2','2','2'); insert into vipform values('1','5'); insert into vipform values('2','4'); insert into vipform values('1','2');
hF9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


结果:
(2)创建触发器:
SQL:

复制具体相关代码 具体相关代码如下:hF9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


CREATE OR REPLACE TRIGGER "FG123"."TER_OV"
BEFORE
DELETE ON "ORDERCOMBINE" FOR EACh ROW
BEGIN
DELETE   FROM   VIPForm
WhERE   VIPForm.V_Id=:OLD.FormerId;
END;
hF9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


(3)删除及结果:
SQL:

复制具体相关代码 具体相关代码如下:hF9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


DELETE FROM "FG123"."ORDERCOMBINE"
WhERE FormerId ='1'
hF9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


具体相关方法四:若表间关系简单(就两张表),涉及到的记录也很少(总共就几行记录),直接删除子表中的相关记录,再删除父表中的记录即可。
(前面的具体相关方法在涉及数据量较大以及表间关系比较复杂时才有效率上的优势,简单的直接删除来的更快)
如上例中,直接删除
SQL数据库语句:

复制具体相关代码 具体相关代码如下:hF9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


DELETE FROM "FG123"."ORDERCOMBINE"
WhERE VIPForm ='1';

DELETE FROM "FG123"."ORDERCOMBINE"
WhERE FormerId ='1'
hF9AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

关于数据库教程相关的教程网站知识今天我们就说到这里了,希望可以帮到大家。

标签:

分享到:

  网友投稿

注册时间:

网站:0 个   APP:0 个  文章:0 篇

  • 76083

    网站

  • 577

    APP

  • 304411

    文章

  • 56004

    会员

赶快注册账号,推广您的网站吧!
文章分类
热门网站
最新入驻APP小程序

宝贝市场2023-02-08

宝贝市场——买手和卖家商品展示

夺宝助手2023-02-08

夺宝助手小程序,查看每日快夺宝平

查诚信2023-02-08

查诚信是一款免费的商业查询工具

车价天天报2023-02-08

快速连接汽车销售,获知汽车最新报

考勤助理小程序2023-02-08

上班签到考勤,实时定位,后台轻松

汽车报价大全查询2023-02-08

汽车报价大全查询提供最新汽车市