默认情况下,PolarDB PostgreSQL版(兼容Oracle)会将新数据添加到表中第一个可用的空间(由抽空的记录腾出空间)。在INSERT或SELECT命令添加APPEND指令,可以使PolarDB PostgreSQL版(兼容Oracle)绕过中间表可用空间,将新行附加到表的末尾。此optimizer hint在批量加载数据时特别有用。

语法如下:

/*+APPEND*/

例如,以下命令与 Oracle 数据库兼容,INSERT 语句中的数据附加到 sales 表末尾:

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

请注意,在单个 INSERT 语句中添加多行时,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 语句的 SELECT 子句中:

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