麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > Oracle > 正文

Oracle中用表外鍵來保證系統參照完整性

2024-08-29 14:01:38
字體:
來源:轉載
供稿:網友

Oracle中表的外鍵是保證系統參照完整性的手段,而參照完整性是指分布在兩個表中的列所滿足的具有主從性質的約束關系。外鍵涉及到兩個表,其中一個稱之為父項表,另一個稱之為子項表。

父項表( parent table )是參照約束的基礎,即通過檢查這張表的有效數據情況來判斷約束是否成立,它是參照約束的條件,影響約束,而不受約束的任何影響。

子項表( child table )是參照約束的對象,當其發生變化,如有新數據輸入時,通過比較父項表中的有效數據狀況,來判斷這些變化是否符合約束條件,若不符合,則拒絕要發生的變化。

在實際應用系統中,開發者為了保證系統的完整性,一般要定義大量的外鍵。然而,如果外鍵的命名不規范,如采用系統自動生成的名稱,則在以后的系統運行維護中會造成很大的麻煩。如在系統運行后,加載大量數據或者進行一些數據轉換操作等時,出現外鍵錯誤時,根據系統提示的外鍵錯誤,根本不可能直接定位到那兩個表間的外鍵發生錯誤,需要浪費很多時間查找造成錯誤發生的外鍵的父項表和子項表,然后才能進一步確定是那條記錄違反了外鍵約束條件。通常,我們采用這樣的命名規則來命名外鍵 FK_Child_table name_Parent_table name 。由于外鍵名稱的最大長度限制在 30 個字符之內,對 child_table_name 和 Parent_table name 不一定和原表一模一樣,可以采取一些簡寫的辦法,但名稱一定要能反映出約束的兩個表。這里的命名, Child_table name 指子項表,也就是約束表, Parent_table name 是指父項表,也就是被約束的表。

下面來詳細討論如何將應用系統中不規范的外鍵命名修改為規范的外鍵名稱。在討論之前,需要提醒讀者注意的是,完成下面的操作需要花費較長的時間,所以一定要規劃在系統空閑時來完成。同時這里的外鍵更名,采用的方法是首先刪除然后重建,涉及到刪除應用系統對象的操作,所以在操作之前,為安全起見,應該備份應用系統。

一、生成系統目前的外鍵報告單

首先生成系統目前模式下的所有外鍵情況報告單, SQL 腳本如下:

腳本 1 :列出當前模式下所有外鍵的報告表,可以將其 spool 到某個文件中

SELECT RPAD(child.TABLE_NAME,25,' ') Child_Tablename, RPAD(cp.COLUMN_NAME,17,' ') Referring_Column, RPAD(parent.TABLE_NAME,25,' ') Parent_Tablename, RPAD(pc.COLUMN_NAME,15,' ') Referred_Column, RPAD(child.CONSTRAINT_NAME,25,' ') Constraint_Name FROM USER_CONSTRAINTS child, USER_CONSTRAINTS parent, USER_CONS_COLUMNS cp, USER_CONS_COLUMNS pc WHERE child.CONSTRAINT_TYPE = 'R' AND child.R_CONSTRAINT_NAME = PARENT.CONSTRAINT_NAME AND child.CONSTRAINT_NAME = cp.CONSTRAINT_NAME AND parent.CONSTRAINT_NAME = pc.CONSTRAINT_NAME AND cp.POSITION = pc.POSITION ORDER BY child.OWNER, child.TABLE_NAME, child.CONSTRAINT_NAME, cp.POSITION;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄污网址 | 中文字幕在线观看精品 | 亚洲成人福利网站 | 欧美成人综合视频 | 99影视电影电视剧在线播放 | 日韩欧美高清一区 | 国产亚洲精品综合一区91555 | 91精品国产日韩91久久久久久360 | 精品国产一区二区三区在线观看 | 免费永久看羞羞片网站入口 | 国产免费午夜 | 欧美精品一区二区三区久久久 | 精品一区二区在线播放 | 精品国产精品久久 | 久久久av亚洲男天堂 | 欧美极品欧美精品欧美视频 | 欧美片一区二区 | 免费在线观看午夜视频 | 亚洲成人国产 | 国产精品成人一区二区三区吃奶 | 国产一级二级在线播放 | 91午夜理伦私人影院 | 中文字幕一二三区芒果 | 日韩精品中文字幕在线观看 | 久久久久国产成人免费精品免费 | 亚洲第一精品在线 | 国产精品伦视频看免费三 | 在线成人免费av | 意大利av在线 | 钻石午夜影院 | 久草成人在线观看 | 亚洲网站免费观看 | 成人不卡一区二区 | 91精品国产乱码久久桃 | 在线观看免费污视频 | 日本精品视频一区二区三区四区 | 黄色网电影| 久久久久久久久久亚洲精品 | 青青草最新网址 | 欧美视频网 | 视频一区免费观看 |