pg_terminate_backend(procpid/pid)
切断数据库(database1)所有的连接 ,示例:

SELECT
	pg_terminate_backend (pg_stat_activity.pid)
	pg_stat_activity
WHERE
	datname = 'database1'
AND pg_stat_activity.pid <> pg_backend_pid ();

如果想改数据库名,同时该库可能有别的用户在用。
改名思路:先切断所有连接,再给数据库改名。
(注:两个sql要同时执行,这样才能保证改名时,没有别的用户连接)

前面先说linux进去psql交互式界面:$ psql -U username dbame查询数据库所有连接select * from pg_stat_activity利用函数断开连接pg_terminate_backend(procpid/pid)切断数据库(database1)所有的连接,示例:SELECT pg_terminate_backend (pg_stat_ac...
1. 断开连接(重命名数据库时,不能有任何连接至改数据库) SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname='dbname' AND pid<>pg_backend_pid(); 2. 重命名 ALTER DATABASE dbname RENAME TO dbname_bak;
shell命令行中执行以下两条命令: ① select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where datname = ‘要删除的数据库’ and pid <> pg_backend_pid(); ② drop database “数据库名”; 命令解释: pg_terminate_backend:用来终止与数据库连接的进程id的函数。 pg_stat_activity:是一个系统表,用于存储服