【发布时间】:2019-01-18 22:05:20
【问题描述】:
我一直在寻找 STDIN 选项,以与 COPY 类似的方式使用 FOREIGN TABLE...并在指南中发现一个“错误”:official sql-create-foreign-table Guide 没有关于选项的文档。没有链接,什么都没有:
选项(选项'值' [, ...])
与新外部表或其列之一关联的选项。 ...
因此,由于缺乏信息,这个问题一分为二:
可以将 STDIN 与
FOREIGN TABLE一起使用吗?“OPTIONS”文档在哪里?
编辑以添加示例
CREATE FOREIGN TABLE t1 (
aa text,
bb bigint
) SERVER files OPTIONS (
filename '/tmp/bigBigdata.csv',
format 'csv',
header 'true'
;
是一个经典的 PostgreSQL 对使用文件系统的限制,所以我需要一个终端解决方案......想象一下在 shell 上有管道的东西,就像
psql -c "ALTER FOREIGN TABLE t1 ... STDIN; CREATE TABLE t2 AS SELECT trim(aa) as aa, bb+1 as bb FROM t WHERE bb>999" < /thePath/bigBigdata.csv
是一种“不直接复制,只过滤一个数据流”,并从这个过滤后的流中创建一个final table t2。
【问题讨论】:
标签: postgresql foreign-data-wrapper