九月 14, 2023
摘要:在本教程中,您将学习如何使用 PostgreSQL 的DROP SCHEMA
语句删除模式及其对象。
目录
PostgreSQL DROP SCHEMA 语句概述
DROP SCHEMA
从数据库中删除模式及其所有对象。下面说明了DROP SCHEMA
语句的语法:
DROP SCHEMA [IF EXISTS] schema_name
[ CASCADE | RESTRICT ];
在这个语法中:
- 首先,在
DROP SCHEMA
关键字后指定要从中删除的模式的名称。 - 其次,使用
IF EXISTS
选项仅在模式存在时有条件地删除模式。 - 第三,使用
CASCADE
删除模式及其所有对象,以及依赖于这些对象的所有对象。如果您只想在模式为空时删除模式,则可以使用RESTRICT
选项。默认情况下,DROP SCHEMA
使用RESTRICT
选项。
要执行DROP SCHEMA
语句,您必须是要删除的模式的所有者或超级用户。
PostgreSQL 允许您使用单个DROP SCHEMA
语句同时删除多个模式:
DROP SCHEMA [IF EXISTS] schema_name1 [,schema_name2,...]
[CASCADE | RESTRICT];
PostgreSQL DROP SCHEMA 语句示例
请注意,以下示例使用的模式,是在CREATE SCHEMA
教程中创建的,并在 ALTER SCHEMA 教程中进行了一些修改。
1) 使用 DROP SCHEMA 语句删除空模式的示例
此示例使用DROP SCHEMA
语句删除accounting
模式,如下:
DROP SCHEMA IF EXISTS accounting;
要刷新列表中的模式,请右键单击模式节点并选择刷新菜单项:
2) 使用 DROP SCHEMA 语句删除多个模式的示例
以下示例使用单个DROP SCHEMA
语句删除多个模式finance
和marketing
:
DROP SCHEMA IF EXISTS finance, marketing;
3) 使用 DROP SCHEMA 语句删除非空模式的示例
以下语句删除scm
模式:
DROP SCHEMA scm;
以下是消息:
ERROR: cannot drop schema scm because other objects depend on it
DETAIL: table scm.deliveries depends on schema scm
view scm.delivery_due_list depends on schema scm
HINT: Use DROP ... CASCADE to drop the dependent objects too.
SQL state: 2BP01
因此,如果模式不为空并且您想要删除模式及其对象,则必须使用CASCADE
选项:
DROP SCHEMA scm CASCADE;
同样,您可以使用以下语句删除sales
模式及其对象:
DROP SCHEMA sales CASCADE;
在本教程中,您学习了如何使用 PostgreSQL 的DROP SCHEMA
语句删除数据库中的一个或多个模式。