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 secNote Code : 1051Unknown 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_classroomDROP TABLE IF EXISIS tb_shool
方法2:取消外键关系,在删除
ALTER TABLE tb_classroom DROP FOREIGN KEY fk_emp_schoolDROP TABLE IF EXISIS tb_shool
