테이블 이름을 바꾸면 defendency는 어떻게 바뀔까?
테스트로 간단 하게 알아보자.
SQL> create table test_tab1 (col1 number);
테이블이 생성되었습니다.
SQL> create unique index test_tab1_pk
2 on test_tab1
3 (col1);
인덱스가 생성되었습니다.
SQL> alter table test_tab1 add constraint test_tab1_pk primary key (col1);
테이블이 변경되었습니다.
SQL> create synonym test.test_tab1 for test_tab1;
동의어가 생성되었습니다.
SQL> grant select on test_tab1 to test;
권한이 부여되었습니다.
SQL> create view test.test_tab1_vw as select * from test_tab1;
뷰가 생성되었습니다.
SQL> create or replace
2 TRIGGER test_tab1_trg
3 BEFORE update ON test_tab1
4 FOR EACH ROW
5 BEGIN
6 null;
7* END;
SQL> /
트리거가 생성되었습니다.
SQL>
REFERENCED_NAME OWNER NAME TYPE STATUS
------------------------------ ------------ ------------------------------ ------------------------------------ --------------
TEST_TAB1 TEST TEST_TAB1_VW VIEW VALID
TEST2 TEST_TAB1_TRG TRIGGER VALID
TEST TEST_TAB1 SYNONYM VALID
SQL> alter table test_tab1 rename to test_tab2;
테이블이 변경되었습니다.
REFERENCED_NAME OWNER NAME TYPE STATUS
------------------------------ ------------ ------------------------------ ------------------------------------ --------------
TEST_TAB2 TEST2 TEST_TAB1_TRG TRIGGER INVALID
오브젝트가 invalid 빠지긴 했지만 compile 하면 되고,
트리거만 따라가고 나머지는 test_tab1에 아직도 종속적이다.
결론, 테이블 이름 변경시 인덱스 이름도 바꿔야 하고, 제약조건 이름도 바꿔야 하고, 시노님 재생성 하고...끝
'OraclE' 카테고리의 다른 글
FILESYSTEMIO_OPTIONS (0) | 2014.07.22 |
---|---|
session 레벨 sql trace (0) | 2014.07.16 |
ORA-14102: only one LOGGING or NOLOGGING clause may be specified (0) | 2014.06.18 |
oracle hr schema 생성 (0) | 2014.05.21 |
rman 백업 확인 (0) | 2014.03.27 |