首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在bash shell中使用psql命令执行多个查询?

如何在bash shell中使用psql命令执行多个查询?
EN

Stack Overflow用户
提问于 2015-03-02 14:11:53
回答 3查看 59.7K关注 0票数 48

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

目前,我可以像这样执行单个查询:

代码语言:javascript
复制
psql -U postgres -h <ip_addr> -c "SELECT * FROM xyz_table;"

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

代码语言:javascript
复制
psql -U postgres -h <ip_addr> -c "SELECT * FROM xyz_table; SELECT * FROM abc_table;"

有没有人能帮助我,告诉我做这件事的正确方法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-02 14:16:06

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

代码语言:javascript
复制
psql -U postgres -h <ip_addr> <database_name> << EOF
SELECT * FROM xyz_table;
SELECT * FROM abc_table;
EOF

或者使用echo和管道。

票数 76
EN

Stack Overflow用户

发布于 2016-05-15 18:50:48

使用echo和管道将其放在一行中:

代码语言:javascript
复制
echo 'SELECT * FROM xyz_table; \n SELECT * FROM abc_table' | psql -U postgres 
票数 15
EN

Stack Overflow用户

发布于 2015-03-02 19:06:31

--file参数执行文件的内容

代码语言:javascript
复制
psql -U postgres -h <ip_addr> -f "my_file.psql"

所有输出都将发送到标准输出

http://www.postgresql.org/docs/current/static/app-psql.html

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28803651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档