티스토리 뷰

반응형


※ 외래키 사용환경

InnoDB 엔진을 쓰는 테이블에만 사용 가능하다.



※ 옵션 설명

외래키를 지정할 때는 몇가지 옵션이 존재하는데 이 옵션을 정확하게 파악하지 않고 사용하게 되면 나중에 운영에 큰 치명타를 입을 수 있으니 잘 알아두자!


변경 제약 : ON UPDATE {RESTRICT | CASCADE | NO ACTION | SET NULL} 

삭제 제약 : ON DELETE {RESTRICT | CASCADE | NO ACTION | SET NULL} 


CASCADE : A개체를 변경/삭제할때, A개체를 참조하고 있는 모든 개체들이 변경/삭제된다.

  

RESTRICT : A개체를 변경/삭제할때, A개체를 참조하고 있는 개체가 존재하면 A개체에 대한 명령(변경/삭제)이 취소된다. 


NO ACTION : MySQL에서는 RESTRICT와 동일함


SET NULL : A개체를 변경/삭제할때, A개체를 참조하고 있는 모든 개체들의 값은 NULL로 셋팅된다.


SET DEFAULT : MySQL에서는 지원 하지 않음.




※ 테이블에 외래키 추가하기

형식) alter table [테이블명] add constraint [외래키 별칭] foreign key (외래키 적용할 컬럼명) references [부모테이블명] (참조할 컬럼) [옵션] 


- constraint 에 설정할 외래기 별칠은 DB내에서 유일한 이름이여야하다.

- 옵션절을 사용하지 않을경우 기본 NO ACTION으로 적용된다.



※ 테이블에 외래기 삭제하기

형식) alter table [테이블명] drop foreign key [constrainst에 설정한 외래키 별칭] 



반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함