【问题标题】:POSTGRES - INSERT INTO FOREIGN TABLEPOSTGRES - 插入外表
【发布时间】:2019-04-01 06:56:38
【问题描述】:

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

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。

【问题讨论】:

  • 您使用的是哪个 FDW?请同时向我们展示create foreign server 声明。

标签: database postgresql external insert-into postgresql-11


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2015-11-08
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 2022-01-01
    相关资源
    最近更新 更多