postgresql 一行 bash 命令删除使用数据库的其他会话

问题描述 投票:0回答:1

我需要你的帮助来制作类似的东西

如何在postgreSQL中删除和重新创建数据库(错误:template1已被使用)

但是使用 debian shell 在一行中。我试过这个:

su - postgres -c "SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'imedig-cloud' AND pid <> pg_backend_pid();"

但我收到以下错误:

-su: -c: línea 0: error sintáctico cerca del elemento inesperado `('
-su: -c: línea 0: `SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'imedig-cloud' AND pid <> pg_backend_pid();'

BR...

database postgresql shell postgresql-9.4
1个回答
0
投票

经过 Zegarek 的帮助和一些研究,以下代码完成了这项工作:

su - postgres -c "psql -c \"SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'imedig-cloud' AND pid <> pg_backend_pid();\"" postgres
© www.soinside.com 2019 - 2024. All rights reserved.