DROP DATABASE
功能描述
删除一个数据库。
注意事项
- 仅数据库所有者或者被授予了数据库DROP权限的用户可以执行该操作,系统管理员默认拥有此权限。
- 无法对系统默认安装的模板数据库和用户数据库(template0、template1、templatea、templatem和postgres)执行删除操作。如果需要查看当前服务中存在的数据库,可以用gsql的\l命令进行查看。
- 当需要删除的数据库存在用户连接时,将无法成功删除数据库。可以通过视图DV_SESSIONS查看当前数据库的连接状态。
- 不能在事务块中执行该操作。
- 确定删除数据库前需要执行“CLEAN CONNECTION TO ALL FORCE FOR DATABASE XXXX;”命令,用于强制停止当前已有的用户连接及后台线程,防止因为存在后台线程未完全退出而导致删除操作失败问题。
DROP DATABASE一旦执行将无法撤销,请谨慎使用。强制停止后台线程可能导致当前数据库数据一致性问题,“CLEAN CONNECTION TO ALL FORCE FOR DATABASE XXXX;”仅在确定删除数据库阶段执行。
- 如果执行DROP DATABASE失败,事务回滚,需要再次执行一次DROP DATABASE IF EXISTS操作。
语法格式
1
|
DROP DATABASE [ IF EXISTS ] database_name; |

参数说明
- IF EXISTS
判断指定的数据库是否存在,使用该参数可以避免出现报错。
- 如果指定的数据库存在,则成功删除。
- 如果指定的数据库不存在,不会进行删除操作,仅产生一个NOTICE提示,用于告知指定的数据库不存在。
- database_name
指定删除的数据库名称。
取值范围:字符串,已存在的数据库名称。
示例
--创建数据库。 gaussdb=# CREATE DATABASE testdb1; --删除数据库。 gaussdb=# DROP DATABASE testdb1;