Foreign Key Risk
참조 무결성은 자식의 FK와 부모의 참조 대상 키 양쪽에서 깨진다
자식이 없는 부모를 가리키게 만들거나, 이미 참조 중인 부모 키를 없애면 참조 무결성 위반이 발생합니다.
참조 대상
customers
orders.customer_id가 이 id를 참조합니다.
| id | name |
|---|---|
| 10 | 김고객 |
| 20 | 이고객 |
외래키 보유
orders
각 주문은 존재하는 고객을 가리켜야 합니다.
| order_id | customer_id |
|---|---|
| 1001 | 10 |
| 1002 | 20 |
자식 INSERT
없는 고객으로 주문 추가
customer_id = 99를 넣지만 customers에 99가 없습니다.
거부
자식 UPDATE
FK를 없는 값으로 수정
customer_id를 20에서 99로 바꾸면 고아 참조가 됩니다.
거부
부모 DELETE
참조 중인 고객 삭제
orders가 가리키는 customers.id=10을 삭제하려 합니다.
거부 또는 동작 적용
부모 UPDATE
참조 대상 키 수정
customers.id=20을 30으로 바꾸면 자식 FK가 끊깁니다.
거부 또는 동작 적용