PostgreSQL 支持 DROP 命令从 PostgreSQL 外部删除数据库。
请小心使用此命令,因为它会永久删除数据库以及属于数据库的所有对象,例如表、视图、索引、序列等,并且无法恢复。
在 PostgreSQL 中,可以通过两种方式删除数据库
- 从 pgAdmin 删除数据库
- 使用 psql 删除数据库
从 pgAdmin 删除数据库
要从 pgAdmin 删除数据库,请按照以下步骤操作。
在本地系统中打开 pgAdmin。展开数据库部分,您将看到数据库列表。右键单击'hr'数据库,然后从下拉选项列表中选择Delete/Drop以删除数据库。
删除数据库之前会显示确认弹出窗口
单击"是"按钮后,数据库将立即被删除。您将在数据库列表中找不到该数据库,因为它已被永久删除。
使用 psql 删除数据库
也可以使用 psql 删除数据库。
DROP DATABASE [IF EXISTS] <database_name>
使用 IF EXISTS
选项仅删除存在的数据库。如果指定的数据库不存在,则会给出警告并跳过 drop 命令。
打开 SQL Shell (psql) 并建立数据库连接。输入 \l
命令查看所有数据库的列表,如下所示。
现在,输入以下命令来删除数据库。
drop database hr;
如果您尝试删除的数据库有另一个活动会话连接到它,则在删除数据库时您可能会收到以下错误。
您可以明确要求用户在删除数据库之前断开与数据库的连接,或者撤消公众对数据库的连接访问权限,然后尝试删除数据库。
REVOKE CONNECT ON DATABASE hr from public;
现在再次执行删除数据库命令,drop database hr
以删除数据库。
您可以通过运行命令来显示所有数据库的列表来验证它。
如果您尝试删除不存在的数据库,您将收到以下错误。
将 IF EXISTS 子句与删除数据库一起使用,仅在数据库存在时删除数据库,否则,仅显示警告并跳过删除命令。