Column Name & Constraints 이름 변경 예
테이블이나 인덱스의 이름을 변경하는 것은 오라클 9iR2 이전에도 가능했지만 9iR2에서는 테이블의 컬럼 명 또는 제약조건의 이름을 변경하는 것이 가능해 졌습니다.
실제 예제를 통해 확인해 보자구요~~
SQL> create table test (
2 c1 varchar2(4) not null,
3 c2 number(10) not null
4 );
테이블이 생성되었습니다.
프라이머리 키를 추가 합니다. 이때 C1컬럼에 대해 인덱스가 생성 됩니다.
SQL> alter table test add (constraint pk_test
2 primary key (c1));
테이블이 변경되었습니다.
SQL> desc test;
이름 널? 유형
----------------------------------------- -------- --------------
C1 NOT NULL VARCHAR2(4)
C2 NOT NULL NUMBER(10)
사용자의 제약 조건을 확인 할 수 있는 USER_CONSTRAINTS VIEW를 통해 TEST 테이블에 제약조건의 타입이 ‘P’ 인것 즉 Primary Key인 제약조건을 검색 합니다. 제약조건에는 NOT NULL, UNIQUE, CHECK, PRIMARY KEY등 테이블의 컬럼에 제약을 가하는 조건을 말합니다.
SQL> select constraint_name
2 from user_constraints
3 where table_name = 'TEST'
4 and constraint_type = 'P';
CONSTRAINT_NAME
------------------------------
PK_TEST
이번에는 TEST 테이블에 생성되어 있는 인덱스를 확인 합니다. 위에서 C1 컬럼을 Primary Key로 설정하여 저절로 이 컬럼에 대한 인덱스가 생성되어 있습니다.
SQL> select index_name,
2 column_name
3 from user_ind_columns
4 where table_name = 'TEST';
INDEX_NAME COLUMN_NAME
------------------------------------
PK_TEST C1
우선 테이블의 이름을 바꾸어 봅니다. 이 기능은 오라클의 이전 버전에서도 되는 기능 입니다…
SQL> alter table test rename to test1;
테이블이 변경되었습니다.
이번에는 컬럼명을 바꾸어 보죠^^
SQL> alter table test1 rename column c1 to code;
테이블이 변경되었습니다.
Primary Ket 제약 조건의 이름을 변경 합니다.
SQL> alter table test1 rename constraint pk_test to pk_test1;
테이블이 변경되었습니다.
이번에는 Primary Key에 걸린 인덱스의 이름을 바꿉니다.
SQL> alter index pk_test rename to pk_test1;
인덱스가 변경되었습니다.
위에서 변경한 내역에 대해 확인해 보겠습니다…
SQL> select constraint_name
2 from user_constraints
3 where table_name = 'TEST1'
4 and constraint_type = 'P';
CONSTRAINT_NAME
------------------------------
PK_TEST1
SQL> select index_name,
2 column_name
3 from user_ind_columns
4 where table_name = 'TEST1';
INDEX_NAME COLUMN_NAME
---------------------------------------------
PK_TEST1 CODE
테이블이나 인덱스의 이름을 변경하는 것은 오라클 9iR2 이전에도 가능했지만 9iR2에서는 테이블의 컬럼 명 또는 제약조건의 이름을 변경하는 것이 가능해 졌습니다.
실제 예제를 통해 확인해 보자구요~~
SQL> create table test (
2 c1 varchar2(4) not null,
3 c2 number(10) not null
4 );
테이블이 생성되었습니다.
프라이머리 키를 추가 합니다. 이때 C1컬럼에 대해 인덱스가 생성 됩니다.
SQL> alter table test add (constraint pk_test
2 primary key (c1));
테이블이 변경되었습니다.
SQL> desc test;
이름 널? 유형
----------------------------------------- -------- --------------
C1 NOT NULL VARCHAR2(4)
C2 NOT NULL NUMBER(10)
사용자의 제약 조건을 확인 할 수 있는 USER_CONSTRAINTS VIEW를 통해 TEST 테이블에 제약조건의 타입이 ‘P’ 인것 즉 Primary Key인 제약조건을 검색 합니다. 제약조건에는 NOT NULL, UNIQUE, CHECK, PRIMARY KEY등 테이블의 컬럼에 제약을 가하는 조건을 말합니다.
SQL> select constraint_name
2 from user_constraints
3 where table_name = 'TEST'
4 and constraint_type = 'P';
CONSTRAINT_NAME
------------------------------
PK_TEST
이번에는 TEST 테이블에 생성되어 있는 인덱스를 확인 합니다. 위에서 C1 컬럼을 Primary Key로 설정하여 저절로 이 컬럼에 대한 인덱스가 생성되어 있습니다.
SQL> select index_name,
2 column_name
3 from user_ind_columns
4 where table_name = 'TEST';
INDEX_NAME COLUMN_NAME
------------------------------------
PK_TEST C1
우선 테이블의 이름을 바꾸어 봅니다. 이 기능은 오라클의 이전 버전에서도 되는 기능 입니다…
SQL> alter table test rename to test1;
테이블이 변경되었습니다.
이번에는 컬럼명을 바꾸어 보죠^^
SQL> alter table test1 rename column c1 to code;
테이블이 변경되었습니다.
Primary Ket 제약 조건의 이름을 변경 합니다.
SQL> alter table test1 rename constraint pk_test to pk_test1;
테이블이 변경되었습니다.
이번에는 Primary Key에 걸린 인덱스의 이름을 바꿉니다.
SQL> alter index pk_test rename to pk_test1;
인덱스가 변경되었습니다.
위에서 변경한 내역에 대해 확인해 보겠습니다…
SQL> select constraint_name
2 from user_constraints
3 where table_name = 'TEST1'
4 and constraint_type = 'P';
CONSTRAINT_NAME
------------------------------
PK_TEST1
SQL> select index_name,
2 column_name
3 from user_ind_columns
4 where table_name = 'TEST1';
INDEX_NAME COLUMN_NAME
---------------------------------------------
PK_TEST1 CODE
[개강확정강좌]오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주간]
[11/4]Spring3.X, MyBatis, Hibernate실무과정
[11/6]SQL초보에서실전전문가까지
[평일야간]
[11/1]C#,ASP.NET마스터
[11/5]iPhone 하이브리드 앱 개발 실무과정
[11/7]JAVA&WEB프레임워크실무과정
[11/8]Spring3.X, MyBatis, Hibernate실무과정
[주말]
[11/2]C#,ASP.NET마스터
[11/2]Spring3.X, MyBatis, Hibernate실무과정
[11/2]JAVA&WEB프레임워크실무과정
[11/9]안드로이드개발자과정
[주간]
[11/4]Spring3.X, MyBatis, Hibernate실무과정
[11/6]SQL초보에서실전전문가까지
[평일야간]
[11/1]C#,ASP.NET마스터
[11/5]iPhone 하이브리드 앱 개발 실무과정
[11/7]JAVA&WEB프레임워크실무과정
[11/8]Spring3.X, MyBatis, Hibernate실무과정
[주말]
[11/2]C#,ASP.NET마스터
[11/2]Spring3.X, MyBatis, Hibernate실무과정
[11/2]JAVA&WEB프레임워크실무과정
[11/9]안드로이드개발자과정
댓글 없음:
댓글 쓰기