Postgresql 中文操作指南

DROP TABLE

DROP TABLE — 删除表

DROP TABLE — remove a table

Synopsis

DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

Description

DROP TABLE 从数据库中删除表。只有表所有者、架构所有者和超级用户才能删除表。要清空表中的行而不销毁表,请使用 DELETETRUNCATE

DROP TABLE removes tables from the database. Only the table owner, the schema owner, and superuser can drop a table. To empty a table of rows without destroying the table, use DELETE or TRUNCATE.

DROP TABLE 总是删除目标表中存在的任何索引、规则、触发器和约束。但是,要删除由视图或其他表的外部键约束引用的表,必须指定 CASCADE 。( CASCADE 将完全删除从属视图,但在外部键的情况下,它只会删除外部键约束,而不会完全删除其他表。)

DROP TABLE always removes any indexes, rules, triggers, and constraints that exist for the target table. However, to drop a table that is referenced by a view or a foreign-key constraint of another table, CASCADE must be specified. (CASCADE will remove a dependent view entirely, but in the foreign-key case it will only remove the foreign-key constraint, not the other table entirely.)

Parameters

  • IF EXISTS

    • Do not throw an error if the table does not exist. A notice is issued in this case.

  • name

    • The name (optionally schema-qualified) of the table to drop.

  • CASCADE

    • Automatically drop objects that depend on the table (such as views), and in turn all objects that depend on those objects (see Section 5.14).

  • RESTRICT

    • Refuse to drop the table if any objects depend on it. This is the default.

Examples

要销毁两个表 filmsdistributors :

To destroy two tables, films and distributors:

DROP TABLE films, distributors;

Compatibility

此命令符合 SQL 标准,但标准只允许每条命令删除一张表,而 IF EXISTS 选项除外,它是一个 PostgreSQL 扩展。

This command conforms to the SQL standard, except that the standard only allows one table to be dropped per command, and apart from the IF EXISTS option, which is a PostgreSQL extension.