默認(rèn)情況下,PolarDB PostgreSQL版(兼容Oracle)會(huì)將新數(shù)據(jù)添加到表中第一個(gè)可用的空間(由抽空的記錄騰出空間)。在INSERT或SELECT命令添加APPEND指令,可以使PolarDB PostgreSQL版(兼容Oracle)繞過(guò)中間表可用空間,將新行附加到表的末尾。此optimizer hint在批量加載數(shù)據(jù)時(shí)特別有用。

語(yǔ)法如下:

/*+APPEND*/

例如,以下命令與 Oracle 數(shù)據(jù)庫(kù)兼容,INSERT 語(yǔ)句中的數(shù)據(jù)附加到 sales 表末尾:

INSERT /*+APPEND*/ INTO sales VALUES
(10, 10, '01-Mar-2011', 10, 'OR');

請(qǐng)注意,在單個(gè) INSERT 語(yǔ)句中添加多行時(shí),PolarDB PostgreSQL版(兼容Oracle)支持 Append hint:

INSERT /*+APPEND*/ INTO sales VALUES
(20, 20, '01-Aug-2011', 20, 'NY'),
(30, 30, '01-Feb-2011', 30, 'FL'),
(40, 40, '01-Nov-2011', 40, 'TX');

Append hint還可包括在 INSERT INTO 語(yǔ)句的 SELECT 子句中:

INSERT INTO sales_history SELECT /*+APPEND*/ FROM sales;