Stargazer

[DB]ORA-02290: check constraint violated(제약조건 위반) 본문

Undergraudate basics(학부생 기초)/DB

[DB]ORA-02290: check constraint violated(제약조건 위반)

COM2IT 2022. 4. 2. 00:43
반응형

나같은 경우 insert 명령을 실행할때 발생하였는데

insert into instructor select ID, name, dept_name, 10000 from student where tot_cred > 100

에러는 아래와 같이 난잡하게 나왔다.

ora-02290: check constraint (sql_itesassnyawjbuwugikoypmrd.sys_c0082514345) violated ora-06512: at "sys.dbms_sql",

그냥 간단히 정리하면

 

sql_itesassnyawjbuwugikoypmrd -> 시스템 소유자

sys_c0082514345 -> 제약조건이름

 

이게 알고보니 테이블 생성시에 제약조건을 설정하는 구간이 있었다.

문제의 제약조건은 salary > 29000 인데, 내가 10000을 넣으려고 하니까 제약조건 위반을 일으키면서 들어가지 않았던 것이다.

 

나같은 경우 oracle live sql을 사용하는데

sql 문법에 제약조건을 해제하는 명령이 있다.

 

alter table [테이블명] disable constraint [제약조건이름]

 

예:

alter table instructor disable constraint SYS_C0082514345 --제약조건이름

다시활성화하려면 disable enable로 하면된다.

 

만약 테이블에서 제약조건을 삭제하고 싶다면 아래와같이 drop으로 바꿔주면 된다.

alter table instructor drop constraint SYS_C0082514345

 

반응형
Comments