이번 글에서는 컬럼 사용을 제한하는 방법에 대하여 알아보도록 하겠습니다.
간혹 작업하다가 혹시 몰라서 컬럼 사용을 제한하고 작업을 하는 경우나 안쓰는 컬럼이 종종 있습니다.
컬럼 사용을 제한하기 위해서는 SET UNUSED 명령어를 사용하면 아주 편리한데요. 지금 알아보겠습니다.
SET UNUSED
특정 테이블의 컬럼을 무조건 삭제하는 것은 위험합니다.
테이블에 저장된 내용이 많을 경우 해당 테이블에서 컬럼을 삭제하는 데 꽤 오랜 시간이 걸리게 될 것입니다. 컬럼을 삭제하는 동안에 다른 사용자가 해당 컬럼을 사용하려고 접근하게 되면 지금 현재 테이블이 사용되고 있기 때문에 다른 사용자는 해당 테이블을 이용할 수 없게 됩니다. 이런 경우 작업이 원활하게 진행되지 않고 락(LOCK)이 발생하게 됩니다.
ALTER TABLE 에 SET UNUSED 옵션을 지정하면 컬럼을 삭제하는 것은 아니지만 컬럼의 사용을 논리적으로 제한할 수 있게 됩니다.
SET UNUSED 옵션은 사용을 논리적으로 제한할 뿐 실제로 컬럼을 삭제하지 않기 때문에 작업 시간이 오래 걸리지 않습니다. 그렇기 때문에 락이 걸리는 일도 일어나지 않게 됩니다.
SET UNUSED 문법
ALTER TABLE 테이블명
SET UNUSED(컬럼명);
아주 간단하죠?
아래 예제를 통하여 살펴보도록 하겠습니다.
예제1) EMP02 테이블의 JOB 컬럼의 사용을 논리적으로 제한해 봅시다.
ALTER TABLE EMP02
SET UNUSED(JOB);
EMP02 테이블의 JOB 컬럼이 제한되었습니다.
참고하시려면 참고하세요!
이번에는 컬럼의 사용 제한이 아닌 컬럼을 삭제하는 방법에 대하여 알아보겠습니다.
ALTER TABLE DROP COLUMN
테이블에 존재하는 컬럼을 삭제합니다.
ALTER TABLE DROP COLUMN 문법
ALTER TABLE table_name
DROP COLUMN column_name;
EX) EMP01 테이블의 직급(JOB1) 컬럼을 삭제해 보도록 합시다.
어렵지 않죠?
하지만 삭제할 때는 언제나 조심해야 합니다!
'2. Database > 2_1 Oracle' 카테고리의 다른 글
[Oracle] SUBSTR() - 문자열의 일부분 추출하는 방법 (0) | 2020.06.26 |
---|---|
[Oracle] MODIFY - 테이블 컬럼(명, 크기, 타입 등) 변경하는 방법 (0) | 2020.06.25 |
[Oracle] ROWID란? (0) | 2020.05.19 |
[Oracle] INTERVAL DAY TO SECOND - 두 날짜 사이 기간 저장하기 (0) | 2020.05.19 |
[Oracle] ROLLBACK이란? (0) | 2020.05.18 |