테이블 삭제

MySQL 에서 테이블을 삭제하려면 DROP TABLE TABLE_NAME 구문을 사용합니다.

DROP TABLE  dept;
SQL


만약 대상 테이블이 없다면 아래와 같이 '1051 unknown table' 에러가 발생합니다.

 [42S02][1051] Unknown table 'mydb.dept'
CODE


MySQL 은 IF EXISTS 구문을 지원하므로 아래와 같이 테이블이 존재할 경우 삭제하도록 하면 에러를 방지할 수 있습니다.

DROP TABLE  if exists dept;
SQL


외래 키(Foreign key)가 있을 때

만약 다른 테이블(emp)에서 foreign key 로 삭제하려는 테이블을 참조하는 등 constraint 가 있을 경우 삭제 되지 않습니다.

[HY000][3730] Cannot drop table 'dept' referenced by a foreign key constraint 'fk_emp_dept' on table 'emp'.
CODE


이경우 참조하는 테이블을 먼저 삭제하는 방법이 있습니다.

DROP TABLE  if exists emp;
DROP TABLE  if exists dept;
SQL


참조 테이블이 계속 사용해야 하면 참조 테이블의 외래 키를 삭제하고 대상 테이블을 삭제하면 됩니다.

ALTER TABLE `emp` DROP FOREIGN KEY `fk_emp_dept`;

DROP TABLE dept  ;
SQL


같이 보기

Ref