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:是一个系统表,用于存储服