10-6. 제약조건 위반 > 학습자료 | IOTsw_u2 U2 Project
학습자료

SQL 10-6. 제약조건 위반

본문

 

① 행 갱신 : 무결성 제약 조건 오류


오라클 디비 예제 : 

UPDATE employees

SET department _id = 55

WHERE employee_id = 110;

employees

 

 

ERROR at line 1 :

ORA-02291 : integrity constraint (HR.EMP_DEPT_FK) violated - parent key not found

 

☞설명) 무결성 제약 조건 오류

부서 번호 55가 존재 하지 않는다.

무결성 제약 조건의 영향을 받는 값을 포함하는 레코드를 갱신하면 오류가 반환된다.

예제에서 부모 테이블 DEPARTMENTS에 부서 번호55가 없으므로 parent key 위반(ORA-02291)이 발생한다.

참고 : 무결성 제약 조건은 데이터가 미리 정의된 규칙을 따르도록 보장해 준다.

 

 

 

 

 

② 행 삭제 : 무결성 제약 조건 오류


예제) 행 삭제 : 무결성 제약 조건 오류

오라클 디비 예제 : 

publishers WHERE pub_id = 60;

 

-----------------------------------------------------------------

ERROR at line 1 :

ORA-02292 : integrity constraint (HR.EMP_DEPT_FK) violated - child record found

-------------------------------------------------------------------

 

☞설명)

다른 테이블에서 외래 키로 사용되는 기본 키를 포함 하는 행은 삭제할 수 없다.

무결성 제약 조건의 영향을 받는 값을 포함하는 레코드를 삭제하면 오류가 반환된다.

예제의 경우 DEPARTMENTS테이블에서 부서 번호60을 삭제하려고 시도하면 부서번호가 EMPOYEES테이블에서 외래 키

로 사용되므로 오류가 발생한다.

 

 

 

삭제하려는 부모레코드가 자식 레코드를 포함하는 경우 child record found 위반(ORA-02292)이 발생한다.

다음 명령문은 부서70에 사원이 없으므로 제대로 동작한다.

 

DELETE FROM departments

WHERE department_id = 70;

MSSQL 디비 예제 :

SELECT emp_id, lname, job_lvl * 12 annsal,hire_date

into dept80

 

MSSQL 디비 예제 :

DELETE FROM publishers

WHERE pub_id = 0877

----------------------------------------------------------------------

메시지 547, 수준 16, 상태 0, 줄 1

DELETE 문이 REFERENCE 제약 조건 "FK__titles__pub_id__07020F21"과(와) 충돌했습니다.

데이터베이스 "pubs", 테이블 "dbo.titles", column 'pub_id'에서 충돌이 발생했습니다.

문이 종료되었습니다.

----------------------------------------------------------------------

 

**다른 테이블에서 참조하고 있지 않은 행을 삭제 할 경우에는 무결성 제약조건 오류가 발생하지 않는다.** 

 

 

 

댓글목록

최고관리자님의 댓글

최고관리자 작성일

에러가 생겼을때 어떻게 콜백 메세지를 쿼리 폼에서 받을 수 있는가?

10. 제약 조건 포함​
이어쓰기 1.A 10-1. NOT NULL 제약 조건
이어쓰기 2.B 10-2. UNIQUE 제약 조건
이어쓰기 3.C 10-3. PRIMARY KEY 제약 조건
이어쓰기 4.D 10-4. FOREIGN KEY REFERENCES 제약 조건
이어쓰기 5.E 10-5. CHECK 제약 조건
이어쓰기 6.F 10-6. 제약조건 위반
이어쓰기 7.G 10-7. 서브 쿼리 구문을 사용한 테이블 생성
이어쓰기 8.H 10-8. 테이블 삭제
이어쓰기 9.I 10-9. 객체 이름 변경
이어쓰기 10.J 10-10. 테이블 주석 추가 --MSSQL에서는 지원하지 않는 기능이다.
이 원글에 이어쓰기

학습자료 목록

Total 91건 1 페이지
게시물 검색

IOTsw_u2 정보

회사 . U2
주소 . 어느별 하늘 아래에 있것지요
사업자 등록번호 . 백수임 대표 . 김씨 전화 . 02-123-4567 팩스 . 팩스없음
통신판매업신고번호 . 낼할께 개인정보관리책임자 . 김씨가 알아서 함 부가통신사업신고번호 신고안함
Copyright © 2001-2013 U2. All Rights Reserved.
닫기