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

jc3wubiy  于 2022-12-22  发布在  PostgreSQL
关注(0)|答案(4)|浏览(234)

我正在使用postgis和PGAdmin的postgres数据库。我有许多不同大小的sql文件,如300MB,280MB等插入到数据库中。什么是最好的方式来做到这一点,即通过java代码或一些psql命令。我是非常新的java和postgres数据库也。请给予我一些建议。

a11xaf1n

a11xaf1n1#

使用psql命令行工具:

psql -f file_with_sql.sql

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

psql --single-transaction -f file_with_sql.sql

更多选项:

psql --help
4xy9mtcn

4xy9mtcn2#

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

psql example.sql

psql将获取文件并将每一行运行到服务器。
如果服务器未在您的计算机上运行,则需要指定计算机的主机名和用户名,以便使用以下命令登录到服务器:

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

要发送多个文件,只需列出所有文件:

psql example1.sql example2.sql example3.sql
ubby3x7f

ubby3x7f3#

另一种方法是使用psql命令**\i**。例如,
假设路径~/sql/run.sql中有文件run.sql

$ cd ~/sql/

$ psql -h <host> -U <user> <database>
<database> => 

<database> => \i 'run.sql'

已完成

y1aodyip

y1aodyip4#

如果.sql文件本身创建了数据库,例如:

\echo 'Delete and recreate database?'
\prompt 'Return for yes or control-C to cancel > ' foo

DROP DATABASE my-db;
CREATE DATABASE my-db;
\connect my-db

最简单的方法是运行以下命令:

psql < my-file.sql

相关问题