描述
删除数据库并从文件系统中删除与该数据库关联的目录。如果系统中不存在该数据库,将抛出异常。
语法
DROP { DATABASE | SCHEMA } [ IF EXISTS ] dbname [ RESTRICT | CASCADE ]
参数说明
子句/关键字 | 用途 | 说明 |
DATABASE / SCHEMA | 关键字 | 二者含义相同,可互换使用 |
IF EXISTS | 幂等删除 | 数据库不存在时不抛异常,静默跳过 |
RESTRICT | 限制删除(默认) | 禁止删除非空数据库,默认行为 |
CASCADE | 级联删除 | 同时删除数据库下所有关联表和函数 |
示例
-- 创建并删除数据库CREATE DATABASE drop_db_test1 COMMENT 'test database for drop';DROP DATABASE drop_db_test1;-- IF EXISTS(不存在不报错)DROP DATABASE IF EXISTS nonexistent_db_xyz;-- DROP 不存在的数据库(预期失败:数据库不存在)DROP DATABASE nonexistent_db_xyz_2;-- CASCADE - 删除包含表的数据库CREATE DATABASE drop_db_test2;CREATE EXTERNAL TABLE drop_db_test2.t1 (id INT)USING PARQUET LOCATION 'cosn://<your_cos_bucket>/test_drop_db/drop_db_test2_t1';DROP DATABASE drop_db_test2 CASCADE;-- RESTRICT - 删除非空数据库(预期失败:RESTRICT 不允许删除非空库)CREATE DATABASE drop_db_test3;CREATE EXTERNAL TABLE drop_db_test3.t1 (id INT)USING PARQUET LOCATION 'cosn://<your_cos_bucket>/test_drop_db/drop_db_test3_t1';DROP DATABASE drop_db_test3 RESTRICT;-- 使用 SCHEMA 关键字CREATE SCHEMA drop_schema_test;DROP SCHEMA drop_schema_test;