postgresql - 从选择查询派生的源复制?

标签 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/

相关文章:

PHP pg_connect 连接字符串

sql - 获取查询中的连续日期

postgresql - Postgres 复制 : Incomplete Startup Packet

SQL:在一个表中查找相同字段以获取另一个表中的多个值?

python - 如何使用 SQLAlchemy 在 Postgres 中执行 date_trunc 查询

java - 如何从数据库存储和读取公钥?我正在使用 postgresql 和 java

SQL Regex 选择第二个和第三个正斜杠之间的字符串

java - 如何使用 java 检查 PostgreSQL 逻辑复制槽是否已经存在?

postgresql - 从 PostgreSQL 中的文本正文中提取所有长度为 1、2 和 3 的 n-gram 的最快方法是什么?

database - Postgres 将列整数更改为 bool 值