GaussDB-DROP DATABASE

66 阅读1分钟

GaussDB-DROP DATABASE

功能描述

删除一个数据库。

注意事项
  • 只有数据库所有者或者被授予了数据库DROP权限的用户有权限执行DROP DATABASE命令,系统管理员默认拥有此权限。
  • 不能对系统默认安装的三个数据库(POSTGRES、TEMPLATE0和TEMPLATE1)执行删除操作,系统做了保护。如果想查看当前服务中有哪几个数据库,可以用gsql的\l命令查看。
  • 如果有用户正在与要删除的数据库连接,则删除操作失败。可以通过视图DV_SESSIONS查看当前有哪些数据库连接。
  • 不能在事务块中执行DROP DATABASE命令。
  • 确定删除数据库前需要执行“CLEAN CONNECTION TO ALL FORCE FOR DATABASE XXXX;”命令,用于强制停止当前已有的用户连接及后台线程,防止因为有后台线程未完全退出而导致的删库失败问题。此处需要注意,强制停止后台线程可能导致当前数据库数据一致性问题,此命令仅在确定删库阶段执行。
  • 如果执行DROP DATABASE失败,事务回滚,需要再次执行一次DROP DATABASE IF EXISTS。

NOTICE:

DROP DATABASE一旦执行将无法撤销,请谨慎使用。

语法格式

| ``` DROP DATABASE [ IF EXISTS ] database_name;

| --------------------------------------------------- |

![](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/d4049115803a40589cdc4838a4f3fd43~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgamVycnl3YW5nMTk4Mw==:q75.awebp?rk3s=f64ab15b&x-expires=1771487558&x-signature=3raxoYMvua1Ik6YbPQQ5GtYyx8w%3D)

#### 参数说明

-   **IF EXISTS**

    如果指定的数据库不存在,则发出一个notice而不是抛出一个错误。

-   **database_name**

    要删除的数据库名称。

    取值范围:字符串,已存在的数据库名称。

#### 示例

请参见CREATE DATABASE的[示例](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0539.html#ZH-CN_TOPIC_0000001911586057__zh-cn_topic_0000001704538405_zh-cn_topic_0059778277_s6be7b8abbb4b4aceb9dae686434d672c)。

#### 相关链接

[CREATE DATABASE](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0539.html#ZH-CN_TOPIC_0000001911586057)

#### 优化建议

-   DROP DATABASE

    []()[]()不支持在事务中删除DATABASE。

更多详情请参考GaussDB 文档中心:<https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/productdesc/qlh_03_0001.html>