【问题标题】:copy from source derived from select query? [duplicate]从选择查询派生的源复制? [复制]
【发布时间】:2012-02-08 00:47:13
【问题描述】:

我正在使用COPY ... FROM ... WITH CSV... 语法,但是我发现文件名可以很容易地从存储在数据库中其他位置的值导出,并且一直在脚本中更改它是维护的噩梦。

是否可以SELECT文件名即:

COPY ... FROM (SELECT filename FROM mytable WHERE x=1) WITH CSV...

谢谢,p.

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    不,你不能,你不能使用子查询来获取文件名。

    但是,您可以在存储过程中使用动态 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;
    $$;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 1970-01-01
      相关资源
      最近更新 更多