0

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

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;

它有效,但我不能将 INSERT INTO 与 SELECT 语句一起使用。

4

1 回答 1

1

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

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

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

于 2019-04-01T10:41:45.247 回答