On Delete cascade와 On Delete Set NULL - Option 비교분석
On Delete cascade와 On Delete Set NULL 옵션은 외래키(Foreign Key)를 생성할 때의 무결성 제약조건으로 참조 무결성(Referential Integrity)을 위배했을 때 취할 동작을 명시하는 옵션입니다. 여기서 참조 무결성이란 외래키 값은 NULL이거나 참조 릴레이션의 기본키(Primary Key) 값과 동일해야 합니다. 즉, 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없습니다. 참조 무결성 제약조건이 위배되었을 때 기본적인 절차는 위반을 유발시킨 동작을 거부하는 것입니다. 하지만 외래키에 참조되는 릴레이션에서 삭제가 제약조건 위반을 발생시키면 그 동작을 거부하는 대신, 시스템이 참조하는 릴레이션의 투플을 변환하는 절차를 밝게 함으로써 수행할 수 있습니다.
ON DELETE CASCADE
다른 테이블의 기존 행에 있는 외래 키에서 참조하는 키가 포함된 행을 삭제하려고 하면 해당 외래 키가 포함되어 있는 모든 행도 삭제되도록 지정합니다.
ON DELETE SET NULL
다른 테이블의 기존 행에 있는 외래 키에서 참조하는 키가 포함된 행을 삭제하려고 하면 해당 행에서 참조되는 외래 키를 구성하는 모든 값이 Null로 설정되도록 지정합니다. 이 제약 조건을 실행하려면 대상 테이블의 모든 외래 키 열에서 Null이 허용되어야 합니다. 만약 제약조건이 Not Null이라면 시스템은 트랜잭션을 취소합니다.
※ 널 값(NULL Value)이란 데이터베이스에서 아직 알려지지 않거나 모르는 값으로서 “해당없음’ 등의 이유로 정보 부재를 나타내기 위해 사용하는 이론적으로 아무것도 없는 특수한 데이터
0 Responses to On Delete cascade와 On Delete Set NULL - Option 비교분석
Something to say?