亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

怎么刪除主表的唯一約束?

我刪除oracle主從表中的唯一約束,我先把從表的唯一約束刪除掉:ALTER TABLE 表名DROP CONSTRAINT 約束名;我用同樣的方法,去刪除主表的唯一約束,報錯(

SQL 錯誤: ORA-02273: 此唯一/主鍵已被某些外鍵引用

02273. 00000 - ?"this unique/primary key is referenced by some foreign keys"

問一下 ?這種情況怎么弄?

正在回答

1 回答

1.檢查哪些表的外鍵引用了要刪除的表的唯一/主鍵.

????? select A.*
????? ?from user_constraints A, user_constraints B
?????? WHERE b.table_name = 'MYTEST'
????? ? and a.constraint_type = 'R'
????? ? and a.r_constraint_name = b.constraint_name;

2.生成所有引用要刪除表的外鍵的創建語句.

????? select 'select dbms_metadata.get_ddl(''REF_CONSTRAINT'',''' ||
????? ??? A.CONSTRAINT_NAME || ''') FROM DUAL;'
????? ?from user_constraints A, user_constraints B
?????? WHERE b.table_name = 'MYTEST'
????? ? and a.constraint_type = 'R'
????? ? and a.r_constraint_name = b.constraint_name;
??????
3.執行步驟2中產生的SQL語句,獲取外鍵定義.

????? set long 3000
????? set linesize 3000
????? set pagesize 300
????? 執行步驟2產生的語句.
??????
4.刪除表.

????? drop table mytest cascade constraints;

5.刪除并重建表.

6.建立因創建該表所刪除的外鍵約束.

????? 執行步驟3中獲取到的sql語句.

7.檢查各外鍵是否得到恢復,系統是否正常.


0 回復 有任何疑惑可以回復我~
#1

qq_嫵鈳取玳_0 提問者

非常感謝!好專業的回答?。?/div>
2016-03-22 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Oracle數據庫開發必備利器之PL/SQL基礎
  • 參與學習       75184    人
  • 解答問題       216    個

Oracle數據庫高級開發必備的基礎,通過實例帶你熟練掌握

進入課程

怎么刪除主表的唯一約束?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號