본문 바로가기

데이터베이스

참조 무결성 제약조건과 SQL쿼리

최초작성 5월 23일
SQL 에서 참조 무결성 제약조건을 어떻게 만족시키는지 간단하게 알아 보려고 한다.



참조'하는' 릴레이션에서 튜플이 삽입될 때,
참조'하는' 애트리뷰트의 값이
참조'되는' 릴레이션에 존재하지 않으면 제약조건에 위배된다..

이것은 참조'하는' 릴레이션의 create table 쿼리에서
FOREIGN 키를 설정해줌으로 써 가능하다.

또한 참조'되는' 릴레이션에서 튜플이 삭제 및 수정될 때,
해당 튜플을 참조'하는' 릴레이션이 있을 경우
FOREIGN 키를 설정하는 부분에 추가하여 ( 콤마 없이)

ON DELETE ACTION ON UPDATE ACTION  과 같이 써준다.

ON DELETE 나 ON UPDATE '한쪽만' 액션을 지정해주는 것도 가능하다
(물론 지정 안해줘도  FOREIGN 키 설정은 가능하다.)

ACTION  에는 다음이 올 수 있다.

SET DEFAULT     
SET NULL
NO ACTION <- 참조되는 쪽의 수정(또는 삭제) 을 거부한다.
CASCADE <-같이 '참조하는 애트리뷰트'의 값이 삭제 또는 수정 되도록 만든다.

'데이터베이스' 카테고리의 다른 글

MSSQL 데이터타입(오래된거..)  (0) 2009.05.04