oracle 11g刪除主鍵約束級聯刪除唯一索引


實際開發中,在創建表主鍵約束的時候,通常會級聯創建唯一索引。

假設現在需要在聯合主鍵中增加一個字段SO_COMPANY_CDE,剛開始的做法是刪除主鍵約束,再重新創建聯合主鍵

alter table CBS_AG_CNTR_MTHD drop CONSTRAINT PK_CBS_AG_CNTR_MTHD cascade;

--確認約束和索引的刪除情況

  可以發現主鍵被刪除了,但是唯一索引依舊存在,因此如果插入重復的數據,還是會報違反約束的錯誤

處理方法:

  在刪除約束的時候需要顯示的指定drop index選項來完成序偶因的級聯刪除,再級聯創建主鍵和索引即可

--刪除主鍵級聯刪除唯一索引
alter table CBS_AG_CNTR_MTHD drop CONSTRAINT PK_CBS_AG_CNTR_MTHD cascade drop index;

--創建主鍵級聯創建唯一索引

alter table CBS_AG_CNTR_MTHD
add constraint PK_CBS_AG_CNTR_MTHD primary key (CNTR_PACKG_UUID, SEQ_NUM, AGENCY_CDE, FEE_TYPE,SO_COMPANY_CDE)
using index
tablespace TS_CBS_TEST
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM