我正在使用postgis和PGAdmin的postgres数据库。我有许多不同大小的sql文件,如300MB,280MB等插入到数据库中。什么是最好的方式来做到这一点,即通过java代码或一些psql命令。我是非常新的java和postgres数据库也。请给予我一些建议。
a11xaf1n1#
使用psql命令行工具:
psql
psql -f file_with_sql.sql
此命令逐行执行所有命令(文件包含开始...END块时除外。在这种情况下,块中的命令在事务中执行)。若要 Package 事务中的所有命令,请使用--single-transaction开关:
--single-transaction
psql --single-transaction -f file_with_sql.sql
更多选项:
psql --help
4xy9mtcn2#
只需将其放在命令行的psql之后:
psql example.sql
psql将获取文件并将每一行运行到服务器。如果服务器未在您的计算机上运行,则需要指定计算机的主机名和用户名,以便使用以下命令登录到服务器:
psql -h server.postgres.com -U username example.sql
要发送多个文件,只需列出所有文件:
psql example1.sql example2.sql example3.sql
ubby3x7f3#
另一种方法是使用psql命令**\i**。例如,假设路径~/sql/run.sql中有文件run.sql
~/sql/run.sql
$ cd ~/sql/ $ psql -h <host> -U <user> <database>
<database> => <database> => \i 'run.sql'
已完成
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
4条答案
按热度按时间a11xaf1n1#
使用
psql
命令行工具:此命令逐行执行所有命令(文件包含开始...END块时除外。在这种情况下,块中的命令在事务中执行)。若要 Package 事务中的所有命令,请使用
--single-transaction
开关:更多选项:
4xy9mtcn2#
只需将其放在命令行的
psql
之后:psql
将获取文件并将每一行运行到服务器。如果服务器未在您的计算机上运行,则需要指定计算机的主机名和用户名,以便使用以下命令登录到服务器:
要发送多个文件,只需列出所有文件:
ubby3x7f3#
另一种方法是使用psql命令**\i**。例如,
假设路径
~/sql/run.sql
中有文件run.sql已完成
y1aodyip4#
如果.sql文件本身创建了数据库,例如:
最简单的方法是运行以下命令: