create table table_name
(
column1 data_type not null,
column data_type not null,
...
constraint constraint_name #생략가능
primary key (column1, column2, ...);
alter table table_name
add constraint constraint_name #생략가능
primary key (column1, colum2, ...);
alter table table_name
drop primary key;
한 테이블을 다른 테이블과 연결해주는 역할
참조되는 테이블의 항목은 그 테이블의 기본키(혹은 단일값)
표기 : MUL
Foreign key 생성 문법 - 테이블 생성 시 fk 지정
create table table_name
(
column1 data_type not null,
column2 data_type not null,
column3 data_type,
column4 data_type,
...
constraint constraint_name #생략가능
primary key (column1, column2, ...),
constraint constraint_name #생략가능
foreign key (column3, column4, ...)
references ref_tablename(ref_column);
- pk는 테이블당 하나이기 때문에 이름이 필요 없지만 fk는 여러개일 수 있다. 때문에 constraint를 생략했을 때 자동생성된 constraint 이름을 확인하는 방법은 다음과 같다.
show create table table_name;
Foreign key 생성 문법 - 테이블 생성 후 fk 지정
alter table table_name
add foreign key (column)
references ref_tablename(ref_column);
Foreign key 삭제 문법
alter table table_name
drop foreign key fk_constraint;