【问题标题】:Is it possible to use variables in a postgresql copy from program URL?是否可以在程序 URL 的 postgresql 副本中使用变量?
【发布时间】:2021-04-27 20:54:37
【问题描述】:
我使用以下命令在 postgresql 中导入数据:
COPY test FROM PROGRAM 'curl https://example.com/events/123&start_date=20210331T191500Z' ;
每次我导入某些东西时,我都必须手动更改“&startdate=***”以仅获取最后一小时的数据。我想知道我是否可以在 url 的“startdate”部分插入一个变量,所以它总是对应于当前时间过去的一个小时。
提前致谢。
【问题讨论】:
标签:
postgresql
import
postgresql-copy
【解决方案1】:
参数只能与 PostgreSQL 中的SELECT、INSERT、UPDATE 和 DELETE 一起使用。
如果您需要参数化的COPY 语句,则必须使用该参数构造一个 SQL 字符串并发送它。您构建查询字符串的具体方式取决于您使用的编程语言。
在 PL/pgSQL 中,PostgreSQL 的标准存储过程语言,例如,它看起来像
EXECUTE format(
'COPY test FROM PROGRAM ''curl https://example.com/events/123&start_date=%s''',
'20210331T191500Z'
);