database - 如何使用 bash shell 中的 psql 命令执行多个查询?

标签 database postgresql shell

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

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

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

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

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 - 如何使用 bash shell 中的 psql 命令执行多个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28803651/

相关文章:

java - Android 应用程序在登录和注册时崩溃

database - JPA:将默认列值设置为数据库中的序列

linux - 如何让我的脚本真正执行,而不是仅仅打印到控制台?

django - heroku:关系 "auth_group"不存在

bash - 此处文档和双反斜杠

linux - 使用 unix 查找模式并替换文件内的模式

sql - 为什么 Postgres 告诉我当两个表都在同一数据库上时跨数据库引用不可用?

mysql - 在 MySQL 数据库中存储每年可重复的值

postgresql - Postgres : problem with FK contraint

python - OpenErp - 外部 ID 批量更新