부모 자식 테이블 관계
두 테이블간 특정 컬럼을 부모-자식관계로 연동시킬 수 있다.
이 경우 부모 테이블의 해당 컬럼에는 자식 컬럼에 있는 값만이 입력될 수 있다.
테이블 값이 제거될 때
자식 테이블의 데이터가 삭제될 때, 연동된 부모 테이블 값을 어떻게 처리할 지를 정의해주어야 한다.
부모 테이블을 생성할 때 이를 설정할 수 있다.
부모 테이블의 값은 삭제하는데 제한이 없다.
1. ON DELETE SET NULL
create table shop_buy(
buy_no number primary key,
user_id varchar2(20) REFERENCES shop_member (user_id) on delete set null, -- shop_member 제거시 null로 설정
product varchar2(20),
buy_date date
);
부모 테이블 shop_buy를 생성한다.
user_id컬럼에는 shop_member테이블의 user_id컬럼 값만 들어올 수 있다.
자식 테이블(shop_member)의 user_id가 삭제될 때, shop_buy테이블의 해당 user_id를 null 로 설정한다.
2. ON DELETE CASCADE
create table shop_buy(
buy_no number primary key,
user_id varchar2(20) REFERENCES shop_member (user_name) on delete cascade, -- shop_member 제거시 데이터 삭제
product varchar2(20),
buy_date date
);
부모 테이블 shop_buy를 생성한다.
user_id컬럼에는 shop_member테이블의 user_id컬럼 값만 들어올 수 있다.
자식 테이블(shop_member)의 user_id가 삭제될 때, shop_buy테이블의 해당 user_id가 있는 모든 행을 삭제한다.
'Database' 카테고리의 다른 글
[오라클] 사용자에게 테이블 권한 부여 및 회수하기 (0) | 2021.03.11 |
---|---|
[오라클] 되돌리기 (0) | 2021.03.11 |
[SQL] 테이블 합치기 MERGE (0) | 2021.03.10 |
[SQL] 테이블에 데이터 추가하기 (0) | 2021.03.10 |
[오라클] 순위 가져오기 (0) | 2021.03.10 |
댓글