我需要重命名数据库,但当我在
PGAdmin : ALTER DATABASE "databaseName" RENAME TO "databaseNameOld"
其中时,告诉我它不能.
我该怎么做?
(WindowsXP上的8.3版)
更新
第一条错误消息:不能,因为我连接到它.所以我选择了另一个数据库并进行了查询.
我收到第二条错误消息,告诉我它已经来了用户连接.我在PGAdmin
屏幕上看到它有很多,PID
但它们都处于非活动状态......我不知道如何杀死它们.
bmdhacks.. 173
不要引用数据库名称:
ALTER DATABASE people RENAME TO customers;
还要确保当时没有其他客户端连接到数据库.最后,尝试发布它返回的错误消息,以便我们可以获得更多信息.
不要引用数据库名称:
ALTER DATABASE people RENAME TO customers;
还要确保当时没有其他客户端连接到数据库.最后,尝试发布它返回的错误消息,以便我们可以获得更多信息.
为了将来参考,您应该能够:
-- disconnect from the database to be renamed \c postgres -- force disconnect all other clients from the database to be renamed SELECT pg_terminate_backend( pid ) FROM pg_stat_activity WHERE pid <> pg_backend_pid( ) AND datname = 'name of database'; -- rename the database (it should now have zero clients) ALTER DATABASE "name of database" RENAME TO "new name of database";
请注意,表pg_stat_activity
列在9.2之前的版本pid
中命名procpid
.因此,如果您的PostgreSQL版本低于9.2,请使用procpid
而不是pid
.
我刚碰到这个,下面是有用的:
1)pdAdmin
是其中一个会议.请psql
改用.
2)pgBouncer
在Windows上停止和/或调度程序服务,因为它们也会创建会话