【问题标题】:how to execute .sql files in postgres database如何在 postgres 数据库中执行 .sql 文件
【发布时间】:2020-07-23 00:07:31
【问题描述】:

我正在使用带有 PostGIS 和 PGAdmin 的 postgres 数据库。我有许多不同大小的 .sql 文件,如 300MB、280MB 等要插入数据库。最好的方法是什么,即通过 java 代码或一些 psql 命令。我对 java 和 postgres 数据库也很陌生。请给我一些建议。

【问题讨论】:

    标签: postgresql psql


    【解决方案1】:

    使用psql命令行工具:

    psql -f file_with_sql.sql
    

    此命令逐行执行所有命令(文件包含 BEGIN...END 块时除外。在这种情况下,块中的命令在事务中执行)。要将所有命令包装在事务中,请使用 --single-transaction 开关:

    psql --single-transaction -f file_with_sql.sql
    

    更多选项:

    psql --help
    

    【讨论】:

    • 这是在一个事务中执行整个 sql 文件还是对文件中的每一行使用一个新事务?
    【解决方案2】:

    只要放在psql后面的命令行就可以了:

    psql example.sql
    

    psql 将获取文件并将每一行运行到服务器。

    如果服务器未在您的计算机上运行,​​您将需要指定计算机的主机名和用户名以登录服务器:

    psql -h server.postgres.com -U username example.sql
    

    要发送多个文件,只需将它们全部列出:

    psql example1.sql example2.sql example3.sql
    

    【讨论】:

    【解决方案3】:

    另一种方法是使用 psql 命令\i。例如,

    假设我们在路径~/sql/run.sql中有文件run.sql

    $ cd ~/sql/
    
    $ psql -h <host> -U <user> <database>
    
    <database> => 
    
    <database> => \i 'run.sql'
    

    完成

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-28
      • 2019-11-09
      • 2019-05-15
      • 2021-12-28
      • 2020-07-05
      • 2022-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多