데이터베이스_Database/SQL
[SQL] 제약 조건 조회/삭제하기 !
200scs
2024. 4. 14. 18:44
제약 조건 조회하기
테이블에 제약 조건을 설정하면 과연 시스템에 기록이 될까?
그렇다.
설정된 제약조건을 딕셔너리에 저장되는데,
이 딕셔너리를 조회하여 테이블에 설정되어 있는 제약 조건을 확인할 수 있다.
특정 테이블의 제약 조건 조회하기
SELECT
table_name,
column_name,
constraint_name
FROM
user_cons_columns
WHERE
table_name = '테이블명(대문자로)'
여기서 각 열은 다음과 같은 의미를 갖는다.
table_name
: 제약 조건이 적용된 테이블의 이름column_name
: 제약 조건이 적용된 컬럼의 이름constraint_name
: 제약 조건의 이름
user_cons_columns
시스템 뷰를 사용하여 사용자가 소유한 특정 테이블에 설정된 제약 조건 정보를 가져오는데,
이를 위해 table_name
필드를 조건으로 사용하여 특정 테이블명을 대문자로 지정한다.
이는 Oracle에서는 대소문자를 구분하지 않기 때문에 대문자로 일치시켜줘야 한다.
특정 테이블의 특정 컬럼에 설정되어 있는 모든 제약 조건 보기
SELECT
constraint_name,
constraint_type,
table_name,
column_name
FROM
user_cons_columns
WHERE
table_name = '특정테이블명'
AND column_name = '특정컬럼명';
constraint_name
: 제약 조건의 이름constraint_type
: 제약 조건의 유형 (예: PRIMARY KEY, UNIQUE, CHECK 등)table_name
: 제약 조건이 적용된 테이블의 이름column_name
: 제약 조건이 적용된 컬럼의 이름
제약 조건 삭제하기
ALTER TABLE test_users
DROP CONSTRAINT users_name_fk;
이런 식으로 고객 테이블의 name
이라는 외래 키 조건이 설정된 컬럼의 외래 키 제약 조건을 해제(삭제)할 수 있습니다.