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表。