DROP TABLE — 删除一个表
DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
DROP TABLE 从数据库中删除表。只有表的所有者、模式的所有者和超级用户才能删除表。要在不销毁表的情况下清空表中的行,请使用 DELETE 或 TRUNCATE。
DROP TABLE 总是会删除目标表上存在的所有索引、规则、触发器和约束。但是,要删除一个被视图引用或者被另一个表的外键约束所引用的表,必须指定 CASCADE。(CASCADE 会把一个依赖的视图完全删除,但在外键的情形下它只会删除外键约束,而不会完全删除另一个表。)
IF EXISTS如果该表不存在,则不抛出错误,此时会发出一个提示。
name要删除的表的名称(可以用模式限定)。
CASCADE自动删除依赖于该表的对象(例如视图),进而删除依赖于这些对象的所有对象(参见 Section 5.15)。
RESTRICT如果有任何对象依赖于该表,则拒绝删除该表。这是默认值。
销毁两个表 films 和 distributors:
DROP TABLE films, distributors;
这条命令符合 SQL 标准,例外是标准中每条命令只允许删除一个表,此外还有 IF EXISTS 选项,它是 PostgreSQL 的一种扩展。