본문 바로가기
mySql

[mysql] Foreign Key

by ram_ 2022. 12. 9.
  • 한 테이블을 다른 테이블과 연결해주는 역할이며, 참조되는 테이블의 항목은 그 테이블의 기본키(혹은 단일값)가 된다.

 

01. create table에서 foreign key를 지정하는 경우

mysql> create table orders
    -> (
    ->     oid int not null,
    ->     order_no varchar(16),
    ->     pid int,
    ->     primary key (oid),
    ->     constraint FK_person foreign key (pid) references person(pid)
    -> );

 

 

 

pid를 foreign key로 설정할 것인데, FK_person으로 이름을 지정하고, person table의 pid를 참고할 것이다.

 


02. create table에서 foreign key를 지정하는 경우, constraint를 생략할 수 있다.

mysql> create table job
    -> (
    ->     jid int not null,
    ->     name varchar(16),
    ->     pid int,
    ->     primary key (jid),
    ->     foreign key (pid) references person(pid)
    -> );

 

03. 자동 생성된 constraint를 확인하는 방법

코드 내에서는 constraint를 생략하였지만 show create table job; 확인해보면 생성되어있는 것을 볼 수 있다.

 

 


04. foreign key 삭제 예제

table이 생성된 이후에도 alter table을 통해 foreign key를 생성 할 수 있다.

mysql> alter table orders
    -> drop foreign key FK_person;

desc orders; 테이블에서는 디테일한 부분을 보기 어려울 때 show create table job; 하면 된다.

 

 

 


05. 기존에 있던 것에 foreign key를 지정하는 경우

mysql> alter table orders
    -> add foreign key(pid) references person(pid);

 

'mySql' 카테고리의 다른 글

[mysql] primary key / foreign key 실습  (0) 2022.12.10
[mysql] foreign key 예제  (0) 2022.12.10
[mysql] Primary Key  (0) 2022.12.09
[mysql] python_ fetch all() / buffered / dataframe  (0) 2022.12.09
[mysql] python  (0) 2022.12.08