DROP DATABASE

最近更新时间:2026-05-20 14:11:21

我的收藏

描述

删除数据库并从文件系统中删除与该数据库关联的目录。如果系统中不存在该数据库,将抛出异常。

语法

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;