问题描述
我正在使用以下命令在 postgresql 中导入数据:
copY test FROM PROGRAM 'curl https://example.com/events/123&start_date=20210331T191500Z' ;
我必须手动更改“&startdate=***”,以便每次导入时只获取最后一小时的数据。我想知道是否有一个变量可以插入到 url 的“startdate”部分,因此它总是对应于当前时间过去一个小时。 提前致谢。
解决方法
参数只能与 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'
);