解析Oracle中多表級聯刪除的方法建站知識
導讀:1建站知識創建數據庫時為了防止其他人不小心刪除操作錯誤, 所有的外鍵都沒有加級聯刪除。哪知,不知什么時候自己入了一營銷型網站建設seo網站優化軟件。
表間的關系比較復企業網站建設雜,數據量又比較多,一個個刪絕對會出大問題。于是實驗了幾種解決的辦法,現小結一下。方法一:創建約束時設定級聯刪除(但一般由于各種原因或出于各種考慮在創建數據庫時沒有設定級聯刪除)SQL語句:
復制代碼 代碼如下:
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)
方法二:創建約束時沒有使用級聯刪除,在需要使用級聯刪除時,刪除原來的外鍵約束,重建帶級聯刪除的約束(實驗證明完全可行,注意需要對已經存在的數據進行驗證,否則新建的約束對原有數據不具備效率,默認是驗證的,若強制要求不驗證,使用NOVALIDATE關鍵詞。還有外鍵引用的只能是唯一主鍵)SQL語句:復制代碼 代碼如下:
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) (這樣就可以級聯刪除了,刪除完后,如果不放心這樣的約束條件,并且不嫌麻煩可以再重建為不帶級聯刪除等外鍵約束,防止誤操作)
方法三:使用觸發器(創建時沒有級聯刪除)(比較靈活,可以根據自己編寫的程序進行,引用的不是唯一主鍵也可以) (1)創建表及插入數據SQL語句:復制代碼 代碼如下:
create table orderCombine ( O_Id VARCHAR2(16) not null, OrderId VARCHAR2(15) not null, FormerId &nbs網站建設制作p; 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');
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-23 ,文章解析Oracle中多表級聯刪除的方法建站知識主要講述標簽,級聯,解析Oracle中多表級聯刪除的方法建站知網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_5761.html