POSTGRES - 插入外表

问题描述 投票:0回答:1

我在外部服务器上创建了一个表

CREATE FOREIGN TABLE external_table (
    field_1 varchar(15) NULL,
    field_2 int4 NULL
)
SERVER server_name
OPTIONS(compression 'pglz', stripe_row_count '500000');

现在我想插入external_table,但如果我运行此查询

INSERT INTO external_table (field_1, field_2) VALUES  ('test',1);

它返回此错误

ERROR: operation is not supported

如何将记录添加到外表中?

我试过以下插入

INSERT INTO external_table (field_1, field_2) select 'test',1;

它可以工作,但我不能在SELECT语句中使用INSERT INTO。

database postgresql external insert-into postgresql-11
1个回答
0
投票

看起来您使用的扩展名支持“插入...选择..”但不支持直接插入。

你可以使用你应该在指定扩展名时提出这个问题。

PS:看起来你使用的扩展名是cstore_fdw。它不支持直接插入,因为它完全取消了使用柱状存储的好处并产生了一些额外的开销。如果您使用的是cstore_fdw,请尝试使用批量插入而不是单行插入。当数据达到特定大小(即stripe_row_count行数)时,插入常规表并将数据移动到cstore_fdw表中是更好的选择。

© www.soinside.com 2019 - 2024. All rights reserved.