DROP TABLE
删除表
语法
DROP TABLE name [CASCADE | RESTRICT | CASCADE CONSTRAINTS]
说明
DROP TABLE
可从数据库中删除表。只有表的所有者可以销毁表。要清空表中的行但不销毁表,请使用 DELETE
。DROP
TABLE
始终删除针对目标表存在的所有索引、规则、触发器和约束。
参数
参数 | 说明 |
---|---|
name | 要删除的表的名称(可能是 schema 限定的)。 |
包含 RESTRICT
关键字可指定在存在任何依赖于表的对象的情况下,服务器应拒绝将其删除。这是默认行为;DROP TABLE
命令将在存在任何依赖于表的对象的情况下报告错误。
包含 CASCADE
子句可删除所有依赖于表的对象。
包含 CASCADE CONSTRAINTS
子句可指定 POLARDB for Oracle 应删除所指定表的所有依赖约束(不包括其他对象类型)。
示例
以下命令删除名为 emp、没有依赖项的表:
DROP TABLE emp;
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, …);
POLARDB for Oracle 将在删除 orders 表时执行下列操作之一,这取决于您指定的删除行为:
- 如果您指定
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 表。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论