修改表名索引約束觸發器等物件不會失效

lusklusklusk發表於2017-03-14
修改表名後,索引、約束、觸發器、comment、授權不會失效,這些物件的建立指令碼中的表名會正常自動更改




修改表名前,索引指令碼如下
CREATE INDEX CUX.CUX_MSC_RMP_SDCI_DTLS_N2170307 ON CUX.CUX_MSC_RMP_SDCI_DTLS(LINE_ID)
修改表名後,索引指令碼如下
CREATE INDEX CUX.CUX_MSC_RMP_SDCI_DTLS_N2170307 ON CUX.CUX_MSC_RMP_SDCI_DTLS20170307(LINE_ID)



修改表名前,約束指令碼如下
ALTER TABLE CUX.CUX_MSC_RMP_SDCI_DTLS ADD (
  CONSTRAINT CUX_MSC_RMP_SDCI_DTLS_PK170307
  PRIMARY KEY
  (DETAIL_ID)
  USING INDEX CUX.CUX_MSC_RMP_SDCI_DTLS_PK170307
  ENABLE VALIDATE);

select CONSTRAINT_NAME from dba_constraints where table_name=upper('cux_msc_rmp_sdci_dtls')
SYS_C00938162170307
SYS_C00938161170307
SYS_C00938167170307
SYS_C00938166170307
SYS_C00938165170307
SYS_C00938164170307
SYS_C00938163170307
CUX_MSC_RMP_SDCI_DTLS_PK170307

修改表名後,約束指令碼如下
ALTER TABLE CUX.CUX_MSC_RMP_SDCI_DTLS20170307 ADD (
  CONSTRAINT CUX_MSC_RMP_SDCI_DTLS_PK170307
  PRIMARY KEY
  (DETAIL_ID)
  USING INDEX CUX.CUX_MSC_RMP_SDCI_DTLS_PK170307
  ENABLE VALIDATE);

select CONSTRAINT_NAME from dba_constraints where table_name=upper('cux_msc_rmp_sdci_dtls20170307')
SYS_C00938162170307
SYS_C00938161170307
SYS_C00938167170307
SYS_C00938166170307
SYS_C00938165170307
SYS_C00938164170307
SYS_C00938163170307
CUX_MSC_RMP_SDCI_DTLS_PK170307




修改表名前,授權指令碼如下
GRANT SELECT ON CUX.CUX_MSC_RMP_SDCI_DTLS TO ALLQUERY;
修改表名後,授權指令碼如下
GRANT SELECT ON CUX.CUX_MSC_RMP_SDCI_DTLS20170307 TO ALLQUERY;




修改表名前,comment指令碼如下
COMMENT ON COLUMN CUX.CUX_MSC_RMP_SDCI_DTLS.ORGANIZATION_ID IS '組織ID';
修改表名後,comment指令碼如下
COMMENT ON COLUMN CUX.CUX_MSC_RMP_SDCI_DTLS20170307.ORGANIZATION_ID IS '組織ID';




修改表名前,觸發器指令碼如下
CREATE OR REPLACE TRIGGER "TR_TEST1" after insert
   ON "TEST3"
   FOR EACH ROW
declare vv number:=2; 
BEGIN
   INSERT INTO test2(hid ) VALUES( :new.hid );
END;
修改表名後,觸發器指令碼如下
CREATE OR REPLACE TRIGGER "TR_TEST1" after insert
   ON "TEST3_20170308"
   FOR EACH ROW
declare vv number:=2; 
BEGIN
   INSERT INTO test2(hid ) VALUES( :new.hid );
END;


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2135323/,如需轉載,請註明出處,否則將追究法律責任。

相關文章