PostgreSQL – 删除表
PostgreSQL 有一个 DROP TABLE 语句,用于从数据库中删除一个或多个现有表。
Syntax: DROP TABLE [IF EXISTS] table_name [CASCADE | RESTRICT];
我们来分析一下上面的语法:
- 我们在 DROP TABLE 关键字后指定表名以从数据库中永久删除该表。
- 如果要删除的表在视图、约束或任何其他对象中使用,则 CASCADE 允许用户自动将这些依赖对象与表一起删除。
- RESTRICT 拒绝删除表,如果有任何对象依赖它。 PostgreSQL 默认使用 RESTRICT。
- 我们可以在 DROP TABLE 之后放置一个表列表来一次删除多个表,每个表用逗号分隔。
- 我们可以在 DROP TABLE 之后放置一个表列表来一次删除多个表,每个表用逗号分隔。
- 需要注意的是,只有超级用户、架构所有者和表所有者才具有删除表的足够权限。
示例 1:
我们将使用以下语句从我们的数据库中author
DROP TABLE author;
PostgreSQL 发出错误,因为author
表不存在。
为避免此错误,您可以使用 IF EXISTS 参数,如下所示:
DROP TABLE IF EXISTS author;
这将导致 PostgreSQL 发出通知而不是错误。
输出:
示例 2:
在这里,我们将删除数据库中已存在的表。要检查数据库中的所有可用表,请使用以下命令:
\dt
它将列出所有现有表,如下所示:
在这里,我们将使用以下语句categories
DROP TABLE categories;
现在再次检查表列表以使用以下命令验证删除:
\dt
输出: