首页 > 解决方案 > 如何在 PGADMIN III 中刷新导入的 CSV 表

问题描述

我将一个 csv 文件导入到一个 sql 表中,但是这个 csv 文件会定期更改。有没有办法根据 csv 文件中的更改刷新表,而无需删除表、再次创建表并使用 pgadmin 中的“导入”功能?

如果可能的话,整个模式是否也存在这样的解决方案,包括基于导入的 csv 文件的表?

先感谢您!

标签: postgresqlcsvpgadmin

解决方案


编辑添加:这假设您可以访问 postgres 服务器,而不是纯粹的 PGADMIN 解决方案。

您可以将此文件作为 FDW(文件数据包装器)。

https://www.postgresql.org/docs/9.5/file-fdw.html或您的正确版本。

例如,我有一个 FDW 设置来从 SQL 中查看 Postgres 日志文件,而不必打开与服务器的 ssh 会话。

当您访问该文件时,该文件作为表存在于架构中,会刷新文件中的数据。

我用于该文件的代码如下,显然该文件需要在 db server 本地系统上。



create foreign table pglog
    (
        log_time timestamp(3) with time zone,
        user_name text,
        database_name text,
        process_id integer,
        connection_from text,
        session_id text,
        session_line_num bigint,
        command_tag text,
        session_start_time timestamp with time zone,
        virtual_transaction_id text,
        transaction_id bigint,
        error_severity text,
        sql_state_code text,
        message text,
        detail text,
        hint text,
        internal_query text,
        internal_query_pos integer,
        context text,
        query text,
        query_pos integer,
        location text,
        application_name text
        )
    server pglog
    options (filename '/var/db/postgres/data11/log/postgresql.csv', format 'csv');

推荐阅读