用于删除一张表

语法

DROP TABLE name [CASCADE | RESTRICT | CASCADE CONSTRAINTS]

参数

参数名称 描述
name 要删除表的名称。

描述

DROP TABLE命令用于从数据库中删除表。只有表的所有者才能删除一张表。

DROP TABLE命令同时删除表中的索引,规则,触发器和约束。

说明

如果有任何对象依赖于表, 那么可以使用关键字RESTRICT来指定服务器不删除这个表。这是缺省行为。有任何依赖于表的对象,那么DROP TABLE命令将会报错。

包括CASCADE子句来删除任何依赖于表的对象。

包括CASCADE CONSTRAINTS子句来指定POLARDB for Oracle删除所指定的表上的依赖限制(不包括其它对象类型)。

示例

删除表emp:

DROP TABLE emp;

执行DROP TABLE命令会产生不同的结果,这主要取决于表是否有任何依赖关系。您可以通过指定删除行为来控制DROP TABLE命令产生的结果。例如,如果您创建了两个表,表orders 和表items,其中表items依赖于表orders:

CREATE TABLE orders
  (order_id int PRIMARY KEY, order_date date, …);
CREATE TABLE items
  (order_id REFERENCES orders, quantity int, …);            
当删除表orders时,POLARDB for Oracle将进行以下操作的其中一种,这主要取决于您所指定的删除行为:
  • 如果您指定了DROP TABLE orders RESTRICT,那么POLARDB for Oracle就会报错。
  • 如果您指定了DROP TABLE orders CASCADE,那么POLARDB for Oracle将会删除表orders及表items。
  • 如果您指定了DROP TABLE orders CASCADE CONSTRAINTS,那么POLARDB for Oracle 将会删除表orders,且会从表items中删除指定的外键,但不会删除表items。