我需要使用 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/