如何在postgres数据库中执行.sql文件

sas*_*ala 12 postgresql psql

我正在使用Postgres数据库和PostGIS以及PGAdmin.我有很多不同大小的.sql文件,如300MB,280MB等,可以插入到数据库中.什么是最好的方法,例如通过java代码或一些psql命令.我也是java和postgres数据库的新手.请给我一些建议.

Tom*_*Rup 24

使用psql命令行工具:

psql -f file_with_sql.sql
Run Code Online (Sandbox Code Playgroud)

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

psql --single-transaction -f file_with_sql.sql
Run Code Online (Sandbox Code Playgroud)

有关更多选项:

psql --help
Run Code Online (Sandbox Code Playgroud)


小智 7

只需将其放在命令行后psql:

psql example.sql
Run Code Online (Sandbox Code Playgroud)

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

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

psql -h server.postgres.com -U username example.sql
Run Code Online (Sandbox Code Playgroud)

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

psql example1.sql example2.sql example3.sql
Run Code Online (Sandbox Code Playgroud)


小智 5

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

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

$ cd ~/sql/

$ psql -h <host> -U <user> <database>
Run Code Online (Sandbox Code Playgroud)
<database> => 

<database> => \i 'run.sql'
Run Code Online (Sandbox Code Playgroud)

完毕