2020040907 / [12] 제약 조건 제거하기, [13] 제약 조건(외래키) 컬럼 삭제

-- [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; -- 확인
































댓글

Designed by JB FACTORY