[sql] CASCADE 옵션을 사용하여 부모 테이블에서 레코드를 삭제할 때 자식 테이블의 레코드도 자동으로 삭제하는 방법
자식 테이블의 레코드도 자동으로 삭제하는 방법
SQL에서 CASCADE 옵션을 사용하면 부모 테이블에서 레코드를 삭제할 때, 자식 테이블의 레코드도 자동으로 삭제할 수 있습니다.
일반적으로 CASCADE 옵션은 외래 키(Foreign Key) 제약 조건을 가진 테이블에서만 사용됩니다. 외래 키 제약 조건은 부모 테이블과 자식 테이블 간의 관계를 정의하고 유지하기 위해 사용됩니다.
CASCADE 옵션을 사용하여 부모 테이블에서 레코드를 삭제할 때, 아래와 같은 방법으로 자식 테이블의 레코드도 자동으로 삭제할 수 있습니다.
ALTER TABLE 자식_테이블
DROP CONSTRAINT 외래키_제약조건_이름;
ALTER TABLE 부모_테이블
DROP CONSTRAINT 기본_키_제약조건_이름
CASCADE;
위의 예제에서는 자식_테이블
에서 외래 키 제약조건을 제거하는 것으로 시작합니다.
그런 다음, 부모_테이블
에서 기본 키 제약조건을 제거하는데, 이때 CASCADE 옵션을 사용하여
자식 테이블의 레코드도 함께 삭제합니다.
중요한 점은 CASCADE 옵션을 사용하기 전에 외래 키 제약 조건의 이름을 알고 있어야 한다는 것입니다. 외래 키 제약 조건의 이름은 데이터베이스마다 다르므로, 각각의 데이터베이스 시스템의 문서나 도움말을 참고하여 확인해야 합니다.
이렇게 CASCADE 옵션을 사용하여 부모 테이블에서 레코드를 삭제할 때 자식 테이블의 레코드도 자동으로 삭제할 수 있습니다. 이는 데이터의 일관성을 유지하기 위해 매우 유용한 기능입니다.