oracle中的級聯刪除(轉)
oracle中的級聯刪除(轉)[@more@]在oracle中,建立表之間的外來鍵關聯時,有個“on delete cascade”選項,應用這個選項可以在父表記錄刪除時,自動刪除子表中的相應記錄。但是這個選項十分危險,我在google上搜了一圈,發現實際使用這個選項的並不多,都是擔心誤刪重要資料。
但是有時又的確需要這樣的級聯刪除功能,避免繁瑣的delete操作。我想到了一個利用資料字典表進行自動級聯刪除的辦法,不過由於較複雜,暫時還沒實現。思路如下:
1、採用遞迴的方式從父表出發,逐級查詢子表;
2、從最底層的子表開始,依次更改其外來鍵為“on delete cascade”方式;
3、從父表刪除記錄;
4、逐層恢復原有外來鍵。
其實如果表的數量不太多,關聯層次不復雜,完全可以手工刪除或者使用儲存過程/指令碼用靜態SQL的方式進行刪除,而不必按照上述方法進行“自動”刪除。
這裡又牽扯到一個資料庫的設計問題,我個人認為,表之間的關聯關係不宜太複雜,在資料庫層面應該儘可能劃分模組,關聯關係應該僅存在於模組內部。
但是有時又的確需要這樣的級聯刪除功能,避免繁瑣的delete操作。我想到了一個利用資料字典表進行自動級聯刪除的辦法,不過由於較複雜,暫時還沒實現。思路如下:
1、採用遞迴的方式從父表出發,逐級查詢子表;
2、從最底層的子表開始,依次更改其外來鍵為“on delete cascade”方式;
3、從父表刪除記錄;
4、逐層恢復原有外來鍵。
其實如果表的數量不太多,關聯層次不復雜,完全可以手工刪除或者使用儲存過程/指令碼用靜態SQL的方式進行刪除,而不必按照上述方法進行“自動”刪除。
這裡又牽扯到一個資料庫的設計問題,我個人認為,表之間的關聯關係不宜太複雜,在資料庫層面應該儘可能劃分模組,關聯關係應該僅存在於模組內部。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-961520/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 級聯刪除
- oracle級聯刪除使用者,刪除表空間Oracle
- 檢視oracle 資料庫中的級聯刪除(delete cascade)Oracle資料庫delete
- 在MySQL中利用外來鍵實現級聯刪除(轉)MySql
- Oracle 多表關聯刪除Oracle
- 刪除oracle10g中的垃圾表?(轉)Oracle
- sql觸發器刪除資料庫中的級聯記錄SQL觸發器資料庫
- JN專案-觸發器級聯刪除觸發器
- STL關聯式容器中刪除元素的方法和陷阱 四 (轉)
- ERP基礎檔案管理模組中實現多級分類檔案級聯刪除技術 (轉)
- 找回Oracle中Delete刪除的記錄Oracledelete
- Oracle中刪除表中的重複資料Oracle
- (轉)linux下完整刪除oracleLinuxOracle
- 轉:Oracle刪除資料檔案Oracle
- mysql中外來鍵約束級聯更新與刪除MySql
- Oracle億級大表高效刪除案例分析Oracle
- 如何刪除oracle庫中相同的記錄Oracle
- Oracle中刪除重複資料的SqlOracleSQL
- 刪除 oracleOracle
- oracle 快速刪除大批量資料方法(全部刪除,條件刪除,刪除大量重複記錄) 轉Oracle
- 【轉】oracle 快速刪除大批量資料方法(全部刪除,條件刪除,刪除大量重複記錄)Oracle
- 【刪除】【Oracle】完美刪除Windows系統上的Oracle軟體OracleWindows
- linux中誤刪除oracle資料檔案的恢復操作(轉)LinuxOracle
- laravel 多對多關聯刪除中間表Laravel
- MySQL 多表關聯刪除MySql
- 4.2.5 從 Oracle Restart 配置中刪除元件OracleREST元件
- 刪除AIX下的ORACLEAIOracle
- Oracle 刪除千萬級資料量時,可以考慮以下方法來提高刪除效率Oracle
- JN專案-用程式碼級聯刪除評論和收藏
- 刪除內聯元素之間的空隙
- Oracle 刪除表中重複記錄的DELETE SQLOracledeleteSQL
- Oracle中審計刪除(DELETE)操作的觸發器Oracledelete觸發器
- ORACLE 10g 中恢復已刪除的表Oracle 10g
- Oracle如何刪除表中重複記錄Oracle
- 建立外來鍵(FK) 以及Oracle9i中三種處理級聯刪除資料的方式Oracle
- 轉載:Oracle中查詢和刪除重複記錄方法簡介Oracle
- oracle job的建立和刪除Oracle
- Oracle中大批量刪除資料的方法(轉自)Oracle