-- [10] 제약 조건 추가하기
create table emp10(
empno number(4),
ename varchar2(20),
job varchar2(20),
deptno number(2)
);
alter table emp10 -- DDL에서 추가 add / 수정 모디파이(mofify??)
add constraint emp10_empno_pk
primary key(empno);
alter table emp10
add constraint emp10_deptno_pk
foreign key(deptno) references dept06(deptno);
-- [11] not null 제약 조건 추가하기
alter table emp10
add constraint emp10_ename_nn not null(ename); --error default 값이 null로 되어 있기 때문에 modify로 수정한다
명령의 186 행에서 시작하는 중 오류 발생 -
alter table emp10
add constraint emp10_ename_nn not null(ename)
오류 보고 -
ORA-00904: : invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
alter table emp10
modify ename constraint emp10_ename_nn not null;
-- [12] 제약 조건 제거하기
alter table emp10
drop primary key; -- emp10 안의 primary key 의 제약조건이 삭제된다
-- [13] 제약 조건(외래키) 컬럼 삭제
delete from dept06
where deptno = 30 -- error
명령의 207 행에서 시작하는 중 오류 발생 -
delete from dept06
where deptno = 30
오류 보고 -
ORA-02292: integrity constraint (SCOTT.EMP06_DEPTNO_FK) violated - child record found
-- DISABLE CONSTRAIN : 제약조건을 일시적으로 비활성화 할 수 있다
-- ENABLE CONSTRAINT : 비활성화된 제약 조건을 해제하여 다시 활성화 할 수 있다
alter table emp06
disable constraint emp06_deptno_fk;
select * from dept06; -- 확인
'ORACLE' 카테고리의 다른 글
다중 행(Multiple Row Operator) 서브 쿼리문 (0) | 2020.04.30 |
---|---|
2020040908 / [13] 제약 조건(외래키) 컬럼 삭제 (0) | 2020.04.30 |
2020040907 / [11] not null 제약 조건 추가하기 (0) | 2020.04.30 |
2020040907 / [10] 제약 조건 추가하기 (0) | 2020.04.30 |
2020040907 / [9] Default 제약 조건 명시 방법 (0) | 2020.04.30 |