我需要使用psql-c命令从命令行执行PostgreSQL查询. 对于每个psql命令,它都会打开一个新的TCP连接来连接到数据库服务器并执行查询,这是大量查询的开销.

目前我可以执行如下单个查询:

psql -U postgres -h <ip_addr> -c "SELECT * FROM xyz_table;"

当我try 执行多个查询时,如下所示,但只执行了最后一个查询.

psql -U postgres -h <ip_addr> -c "SELECT * FROM xyz_table; SELECT * FROM abc_table;"

有谁能帮我,告诉我正确的方法吗?

推荐答案

-c只处理一个命令.然而,如果没有它,psql希望将命令传递到标准输入中,例如:

psql -U postgres -h <ip_addr> <database_name> << EOF
SELECT * FROM xyz_table;
SELECT * FROM abc_table;
EOF

或者使用echo和管道.

Database相关问答推荐

如何调试Anylogic SQL数据库TLS错误?

在Prisma中建立关系

如何以编程方式在 C# 中创建 Microsoft Access 数据库?

Oracle SQL 开发人员中的 DB2 数据库

MongoDB 单文档大小限制为 16MB

使用 SQLAlchemy Core 批量插入列表值

免费的 SQL 比较工具

如何找到 Oracle 数据库的 URL?

如何更改 SQLite 数据库列中的值?

使用 PHPUnit 进行数据库测试的最佳实践

将图像文件存储在 Mongo 数据库中,这是个好主意吗?

返回 SQLite 数据库中表大小的查询

C# 数据连接最佳实践?

PDO SQL 状态00000但仍然错误?

dbvisualizer:在 Select 查询中设置最大行数

SQL Server 自动备份

Rails 新手,设置 db 然后运行 ​​rake db:create/migrate

C# IEnumerator/yield struct 可能不好?

Web 应用程序的文件存储:文件系统、数据库和 NoSQL 引擎

自引用表上的 SQL 递归查询 (Oracle)