與截斷表的操作類似,PolarDB PostgreSQL版(相容Oracle)可以指定一個分區進行截斷。本文介紹了其文法及樣本。
文法說明
ALTER TABLE <table_name> TRUNCATE PARTITION <partition_name>;
ALTER TABLE <table_name> TRUNCATE SUBPARTITION <subpartition_name>;使用以上TRUNCATE文法可以快速刪除一組表中的所有行。它與每個表上的非限定DELETE具有相同的效果,但由於它實際上並不掃描表,因此速度更快。
此外,使用TRUNCATE文法刪除行後,會立即回收磁碟空間,因此不需要後續的VACUUM操作。
樣本
對p1分區進行截斷:
CREATE TABLE hash_partitions_sales (deptno NUMBER, deptname VARCHAR(32))
PARTITION BY HASH(deptno)
(PARTITION p1 , PARTITION p2 ,
PARTITION p3 , PARTITION p4 , PARTITION p5);
ALTER TABLE hash_partitions_sales TRUNCATE PARTITION p1 ;