안녕하세요, 차세대 IT리더가 되고픈 비공자입니다.
오늘은 프로젝트를 만들기 위해서 테이블을 생성
하는 중, 제약조건이 뭐뭐 걸었는지 확인을 하기 위해서
제약조건 확인을 하는 방법에 대해서 공부를 해보려고
합니다.
[ 오늘의 목차 ]
1. 제약조건 확인하기
2. 제약조건 추가하기
3. 제약조건 삭제하기
1. 제약조건 확인하기
테이블을 생성하는 중
name already used by an existing constraint
( 이미 사용 중인 제약조건명입니다. )
오류가 발생해서 제약조건을 무엇을 사용하고 있는지
확인해 볼 필요가 있었습니다.
[ 제약조건 확인 쿼리 형식 ]
SELECT * FROM ALL_CONSTRAINTS WHERE OWNER = '스키마명';
( 모든 제약조건 VIEW에서 전체 조회 )
이럴 경우, CONSTRAINT_NAME 즉, 제약조건명이
SYS_C00~ 이런 식으로 되어있는 것은 제약조건명을
명시하지 않은 상태에서 제약조건을 생성을 하여서
RDBMS에서 임의로 지정해 준 것이라고 생각하시면 됩니다.
[ 제약조건 확인 쿼리 응용 ]
여러분은 해당 제약조건명을 지정해주시면
어떤 제약조건인지 확인이 가능해서
꼭 응용해서 사용해 보시면 좋을 것 같습니다.
위와 같이 어느 테이블의 제약조건이 무엇이 있는지
확인이 가능합니다.
2. 제약조건 추가하기
제약조건 추가할 대상 테이블 : 강의등록기본
이번엔 제약조건을 테이블을 생성할 때
추가하지 않고, 테이블 생성 후, 제약조건을
추가하는 방식에 대해서 공부를 해보겠습니다.
[ PK제약조건 추가하기 ]
형식 : ALTER TABLE 테이블명
ADD CONSTRAINT
제약조건명 PRIMARY KEY(컬럼명)
테이블을 생성 후, PK제약조건을 추가하는 쿼리
이면서 ALTER 명령어의 경우
DDL(Data Definition Language)입니다.
[ FK제약조건 추가하기 ]
형식 : ALTER TABLE 테이블명
ADD CONSTRAINT
제약조건명 FOREIGN KEY(컬럼명)
REFERENCES 부모테이블(컬럼명);
대상(자식) 테이블은 : TC_CLASS_REG_BAS
대상(부모) 테이블은 : TC_CUST_INFO
참조받은 컬럼 : CUST_NO, CUST_ID
3. 제약조건 삭제하기
형식 : ALTER TABLE 테이블명
DROP CONSTRAINT 제약조건명
( 해당 테이블의 제약조건을 삭제한다 )
[ 제약조건 삭제 응용 ]
위와 같이 TC_CLASS_PK( PK제약조건 )
삭제했습니다.
[ 정리 ]
제약조건 조회 :
-> SELECT * FROM ALL_CONSTRAINTS;
제약조건 추가 :
-> ADD CONSTRAINT
제약조건 삭제 :
-> DROP CONSTRAINT
위와 같은 내용으로 제약조건을
조회, 추가, 삭제를 할 수 있습니다.
감사합니다.
'DBA가 되고 싶은 비공자 > SQLD 자격증' 카테고리의 다른 글
[ SQLD ] 오라클 캐시(Oracle Cache)에 대한 공부 (0) | 2024.06.30 |
---|---|
[ SQLD ] 오라클 시퀀스 조회, 생성, 수정, 삭제, 테이블 적용 (0) | 2024.06.29 |
[ SQLD ] DDL(Data Definition Language) RENAME 테이블 명, 컬럼 명 변경하기 (0) | 2024.06.23 |
[ SQLD ] DDL(Data Definition Language) 부모테이블 참조 FOREIGN KEY(외래키) 설정 (1) | 2024.06.19 |
[ SQLD ] DDL(Data Definition Language) 테이블 생성 및 PRIMARY KEY(기본키) 제약조건 추가 및 코멘트 적용 (0) | 2024.06.18 |