다음과 같이 테이블을 생성한 후,
create table orders
(
oid int not null,
order_no varchar(16),
pid int,
primary key (oid),
foreign key (pid) references person(pid)
);
foreign key를 사용하는 이유는 RDB에서 데이터의 일관성을 유지하기 위해서이다.
그런데 사실 이렇게 만들면 foreign key의 constraint symbol이 orders_ibfk_1 형태로 자동생성된다.
이후에 사용하기 편하려면 아래와 같이 수정해주자.
alter table orders add constraint fk_orders_person foreign key (pid) references person(pid);
fk_orders_person: orders 테이블에서 person을 참조하는 fk라는 뜻의 naming convention
foreign key를 삭제한다고 하자.
alter table orders drop foreign key fk_orders_person
그러고 나서 desc로 삭제를 확인해 보면

여전히 MUL로 key 표시가 남아 있다.
mysql에서 index가 없는 컬럼에 foreign key 조건을 줄 때 index를 자동생성해 주기 때문이다.

key 속성이 남아있을 때 특별히 이슈는 없다고 하는데... 확실히 지우고 싶으면 key도 삭제 해주도록 하자
alter table orders drop key fk_orders_person;
key 삭제 확인

한번에 삭제하는 법
alter table orders drop foreign key fk_orders_person, drop key fk_orders_person;