DROP TABLE命令用於刪除整個表及表內的所有資料。
文法
DROP TABLE name [CASCADE | RESTRICT | CASCADE CONSTRAINTS]
說明
DROP TABLE
可從資料庫中刪除表,當您刪除一個表時,這個表的所有分區或子分區也會被刪除。要清空表中的行但不銷毀表,請使用 DELETE
。DROP TABLE
始終刪除針對目標表存在的所有索引、規則、觸發器和約束。
使用DROP TABLE命令,您必須是分區根的擁有者、擁有表的小組中的成員、模式擁有者或是資料庫的超級使用者。
參數
參數 | 說明 |
name | 要刪除的表或分區表的名稱(可能是schema限定的)。 |
包含 RESTRICT
關鍵字可指定在存在任何依賴於表的對象的情況下,伺服器應拒絕將其刪除。這是預設行為,DROP TABLE
命令在存在任何依賴於表的對象的情況下將報告錯誤。
包含CASCADE
/ CASCADE CONSTRAINTS
子句可指定PolarDB PostgreSQL版(相容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 int REFERENCES orders, quantity int, …);
根據您的刪除行為,PolarDB PostgreSQL版(相容Oracle)在刪除orders表時執行以下操作:
如果您指定
DROP TABLE orders RESTRICT
,PolarDB PostgreSQL版(相容Oracle)將報告錯誤。如果您指定
DROP TABLE orders CASCADE CONSTRAINTS
,PolarDB PostgreSQL版(相容Oracle)將刪除orders表並從items表中刪除外鍵規格,但不刪除items表。