MySQL 테이블 삭제하기(Table drop)
테이블 삭제
MySQL 에서 테이블을 삭제하려면 DROP TABLE TABLE_NAME 구문을 사용합니다.
DROP TABLE dept;
만약 대상 테이블이 없다면 아래와 같이 '1051 unknown table' 에러가 발생합니다.
[42S02][1051] Unknown table 'mydb.dept'
MySQL 은 IF EXISTS 구문을 지원하므로 아래와 같이 테이블이 존재할 경우 삭제하도록 하면 에러를 방지할 수 있습니다.
DROP TABLE if exists dept;
외래 키(Foreign key)가 있을 때
만약 다른 테이블(emp)에서 foreign key 로 삭제하려는 테이블을 참조하는 등 constraint 가 있을 경우 삭제 되지 않습니다.
[HY000][3730] Cannot drop table 'dept' referenced by a foreign key constraint 'fk_emp_dept' on table 'emp'.
이경우 참조하는 테이블을 먼저 삭제하는 방법이 있습니다.
DROP TABLE if exists emp; DROP TABLE if exists dept;
참조 테이블이 계속 사용해야 하면 참조 테이블의 외래 키를 삭제하고 대상 테이블을 삭제하면 됩니다.
ALTER TABLE `emp` DROP FOREIGN KEY `fk_emp_dept`; DROP TABLE dept ;