[오라클] 서로 다른 두 개의 테이블에 있는 값 동시에 삭제 하기 (오라클 외래키 on delete cascade 사용하기)
출처: https://wakestand.tistory.com/205
오라클 cascade 사용방법 및 예제
오라클에서 cascade란 두 테이블을 연결해서 PK를 가지고 있는 쪽의 값을 삭제하면 FK로 연결된 값이 동시에 삭제되게 하는 옵션이다 예제에서는 부모 역할을 할 MOTHER_TABLE에 테이블 생성과정 중 CON
wakestand.tistory.com
1. 현재 내 개인 프로젝트에 회원 정보 테이블(tbl_member)과 회원 권한(tbl_member_auth) 테이블이 따로 있는데 회원 탈퇴 시에 tbl_member에서 PK인 회원 아이디 userid 가 삭제되면 tbl_member_auth의 PK이자 tbl_member와는 FK로 연결되어있는 userid 또한 함께 삭제하도록 쿼리문을 작성하고 싶었다.
2. 이때 사용할 수 있는 기능이 바로 'CASCADE'이다. 오라클에서 CASCADE란 두 테이블을 연결해서 PK를 가지고 있는 쪽의 값을 삭제하면 FK로 연결된 값이 동시에 삭제되게 하는 옵션이다.
3. 테이블을 처음 생성할때 CASACDE 조건을 추가할 수도 있고 나중에 필요시 추가할 수도 있다.
===============================================================================
1. 내 개인 프로젝트의 경우 이미 두 테이블이 외래키로 연결되어 있었기 때문에 ON DELETE CASCADE를 추가하려고 하자 오류가 발생하였다. 그래서 일단 아래와 같이 기존의 외래키 연결을 끊어주고,
2. 아래와 같이 다시 외래키를 연결해주면서 ON DELETE CASCADE 를 추가해주었다.
3. 그리고 TBL_MEMBER에서 테스트용 아이디 값 하나를 삭제 해보았고,
4. TBL_MEMBER_AUTH 에서도 동일하게 삭제 처리가 된 것을 확인할 수 있었다.
그 외 출처: