-
SQL_Constraint Enable / DisableData Base_Oracle/SQL 2020. 1. 6. 21:43
§ 제약조건 활성화 / 비활성화
※ Data Dictionary
로그인 상태에서 작업한 내용이 전부 테이블 형태로 기록됨
Oracle 자체에서 제공하는 기능이며, System Table에 저장됨- user_XXX : 로그인한 계정들로 조회 가능
ex) desc user_constraints - dba_XXX : 관리자만 조회 가능
- all_XXX : 관리자 / 일반 계정 조회 가능
# 예제
▶ 제약조건 테이블 구조 확인 _ scott 계정
[ SQL> desc user_constraints ]이름 널? 유형 ... ... ... CONSTRAINT_NAME
제약조건 이름NOT NULL VARCHAR2(30) CONSTRAINT_TYPE
제약조건 종류VARCHAR2(1) TABLE_NAME
테이블 이름NOT NULL VARCHAR2(30) STATUS
제약조건 활성화 상태VARCHAR2(8) ... ... ... ▶ emp테이블의 제약조건 이름, 종류, 테이블 이름, 제약조건 상태 조회 _ scott
[ SQL> select constraint_name, constraint_type, table_name, status
from user_constraints where table_name=upper('&table_name');
table_name의 값을 입력하십시오: emp ]CONSTRAINT_NAME CONSTRAINT_TYPE TABLE_NAME STATUS PK_EMP P(rimary key) EMP ENABLED FK_DEPTNO R(eferences) EMP ENABLED ※ ENABLED : 작동 중 / DISABLED : 비작동 중
§ 제약조건 활성화 / 비활성화 형식
[ SQL> alter table 수정table명 enable / disable constraint 제약조건이름 ]
# 제약조건 활성화 / 비활성화 예제 _ test1 계정
▶ 제약조건 비활성화
[ SQL > alter table b_prtest disable constraint B_PRTEST_CK_AGE;
select constraint_name, status from user_constraints where status='DISABLED'; ]CONSTRAINT_NAME STATUS B_PRTEST_CK_AGE DISABLED ▶ 제약조건 활성화
[ SQL > alter table b_prtest enable constraint B_PRTEST_CK_AGE;
select constraint_name, status from user_constraints
where constraint_name='B_PRTEST_CK_AGE'; ]CONSTRAINT_NAME STATUS B_PRTEST_CK_AGE ENABLED
제약조건 활성화/비활성화 방법에 대해 알고 있으면 제약조건을 무조건 삭제하기보다,
불필요할 때는 비활성화를 해 두었다가 필요할 때 다시 활성화할 수 있을 것입니다.
'Data Base_Oracle > SQL' 카테고리의 다른 글
SQL_Inner Join(Equi Join) & 테이블 별칭 부여 (0) 2020.01.06 SQL_Join 개요 & Cross Join (0) 2020.01.06 SQL 제약조건 Foreign Key (0) 2020.01.04 SQL 제약조건 Check & Default (0) 2020.01.04 SQL 제약조건 Primary Key & Unique (0) 2020.01.04 - user_XXX : 로그인한 계정들로 조회 가능