【发布时间】:2020-07-23 00:07:31
【问题描述】:
我正在使用带有 PostGIS 和 PGAdmin 的 postgres 数据库。我有许多不同大小的 .sql 文件,如 300MB、280MB 等要插入数据库。最好的方法是什么,即通过 java 代码或一些 psql 命令。我对 java 和 postgres 数据库也很陌生。请给我一些建议。
【问题讨论】:
标签: postgresql psql
我正在使用带有 PostGIS 和 PGAdmin 的 postgres 数据库。我有许多不同大小的 .sql 文件,如 300MB、280MB 等要插入数据库。最好的方法是什么,即通过 java 代码或一些 psql 命令。我对 java 和 postgres 数据库也很陌生。请给我一些建议。
【问题讨论】:
标签: postgresql psql
使用psql命令行工具:
psql -f file_with_sql.sql
此命令逐行执行所有命令(文件包含 BEGIN...END 块时除外。在这种情况下,块中的命令在事务中执行)。要将所有命令包装在事务中,请使用 --single-transaction 开关:
psql --single-transaction -f file_with_sql.sql
更多选项:
psql --help
【讨论】:
只要放在psql后面的命令行就可以了:
psql example.sql
psql 将获取文件并将每一行运行到服务器。
如果服务器未在您的计算机上运行,您将需要指定计算机的主机名和用户名以登录服务器:
psql -h server.postgres.com -U username example.sql
要发送多个文件,只需将它们全部列出:
psql example1.sql example2.sql example3.sql
【讨论】:
另一种方法是使用 psql 命令\i。例如,
假设我们在路径~/sql/run.sql中有文件run.sql
$ cd ~/sql/
$ psql -h <host> -U <user> <database>
<database> =>
<database> => \i 'run.sql'
完成
【讨论】: