DROP TABLE [IF EXISTS] <表名1> [ , <表名2> , <表名3> …];
1.语法说明如下:
- <表名>:被删除的表名。DROP TABLE 语句可以同时删除多个表,用户必须拥有该命令的权限。
- 表被删除时,所有的表数据和表定义会被取消,所以使用本语句要小心。
- 表被删除时,用户在该表上的权限并不会自动被删除。
- 参数IF EXISTS用于在删除前判断删除的表是否存在,加上该参数后,在删除表的时候,如果表不存在,SQL 语句可以顺利执行,但会发出警告(warning)。
注:在删除表的同时,表的结构和表中所有的数据都会被删除,因此在删除数据表之前最好先备份,以免造成无法挽回的损失。
2.示例演示
drop table 表名;
drop table table_1
-- 若表存在,直接删除,不存在则报错 :Unknown table 'runoob_backup1'
DROP TABLE `runoob_backup1`
-- 无论存在不存在都不会报错,如果不存在会发出警告
共 0 行受到影响, 1 个警告
执行耗时 : 0.001 sec
传送时间 : 1.028 sec
总耗时 : 1.029 sec
Note Code : 1051
Unknown table 'runoob_backup1'
3.关联场景
CREATE TABLE tb_school ( id INT ( 11 ) PRIMARY KEY, name VARCHAR ( 22 ) );
CREATE TABLE tb_classroom (id INT(11) PRIMARY KEY,schoolId INT(11),
CONSTRAINT fk_emp_school FOREIGN KEY(schoolId) REFERENCES tb_school(id)
)
如果主父两张表存在关联关系,直接删除主表会报错,方法如下
方法1:先删除子表,在删除主表
DROP TABLE IF EXISIS tb_classroom
DROP TABLE IF EXISIS tb_shool
方法2:取消外键关系,在删除
ALTER TABLE tb_classroom DROP FOREIGN KEY fk_emp_school
DROP TABLE IF EXISIS tb_shool