📜  PostgreSQL – 删除表

📅  最后修改于: 2022-05-13 01:57:15.026000             🧑  作者: Mango

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

输出: