<分区>
我正在使用 COPY ... FROM ... WITH CSV...
语法,但是我发现文件名可以很容易地从数据库中其他地方存储的值中导出,并且一直在脚本中更改它是一场维护噩梦。
是否可以SELECT
文件名,即:
COPY ... FROM (SELECT filename FROM mytable WHERE x=1) WITH CSV...
谢谢,p。
标签 postgresql
<分区>
我正在使用 COPY ... FROM ... WITH CSV...
语法,但是我发现文件名可以很容易地从数据库中其他地方存储的值中导出,并且一直在脚本中更改它是一场维护噩梦。
是否可以SELECT
文件名,即:
COPY ... FROM (SELECT filename FROM mytable WHERE x=1) WITH CSV...
谢谢,p。
最佳答案
不,你不能,你不能使用子查询来获取文件名。
但是,您可以在存储过程中使用动态 SQL。从 9.0 版开始,您可以使用 DO:
DO
$$
DECLARE
_file TEXT;
BEGIN
SELECT filename INTO _file FROM mytable WHERE x=1;
EXECUTE 'COPY ... FROM ' || _file || ' WITH CSV...;';
RAISE INFO 'File % imported', _file;
END;
$$;
关于postgresql - 从选择查询派生的源复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9186338/