postgresql数据库删除时提示回话 sessions using the database

数据库命令行或者管理工具中执行删除数据库的命令,

DROP DATABASE testdb;

的时候,可能会提示:

ERROR:  database "testdb" is being accessed by other users
DETAIL:  There are 3 other sessions using the database.

这个意思是说,删除数据库失败,因为这里还有3个链接连接到该数据库上,PostgreSQL在有进程连接到数据库时,对应的数据库是不运行被删除的。

那么怎么办呢?
解决方式:断开连接到这个数据库上的所有链接,再删除数据库。怎么断开呢?在PostgreSQL 9.2 及以上版本,执行下面的语句:

SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE datname=‘testdb‘ AND pid<>pg_backend_pid();

执行上面的语句之后,在执行DROP操作,就可以删除数据库了。

上面语句说明:
pg_terminate_backend:用来终止与数据库的连接的进程id的函数。
pg_stat_activity:是一个系统表,用于存储服务进程的属性和状态。
pg_backend_pid():是一个系统函数,获取附加到当前会话的服务器进程的ID。

原文地址:https://www.cnblogs.com/hellojesson/p/10037315.html

时间: 2024-10-13 00:56:50

postgresql数据库删除时提示回话 sessions using the database的相关文章

恢复数据库备份时提示日志错误

可以打开了恢复的时候增加了这个参数 WITHOUT ROLLING FORWARD 恢复数据库备份时提示日志错误,码迷,mamicode.com

sql server 2008 r2 数据库操作时提示 9002错误“事物日志已满”问题

事务日志截断 若要避免数据库的事务日志被填满,例行备份至关重要.在简单恢复模式下,备份了数据库后会自动截断日志,而在完整恢复模式下,只有备份了事务日志后方才截断日志.但是,截断过程有时也可能发生延迟.有关识别和应对各种延迟因素的信息,请参阅可能延迟日志截断的因素. 注意  BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 选项已废止.使用完整恢复模式或大容量日志恢复模式时,如果必须删除数据库中的日志备份链,请切换至简单恢复模式.有关详细信息,请参阅有关从完整

数据库删除时错误中断,然后无法删除

更改数据库字段时报错,无法查看该数据库表,然后删除数据库时一直报错.重启无效. 解决方法: 在远程主机上登录MySQL,执行show full processlist观察state和info两列,查看有哪些线程在运行.经过查询发现之前远程删除的时候由于网络中断,锁表了.所以导致再次登录的时候删除操作无响应.这时候只要使用kill命令+对应线程前面id,将线程结束掉,就可以正常删除了.————————————————版权声明:本文为CSDN博主「CCCheer」的原创文章,遵循 CC 4.0 BY

MSSQL数据库安装时提示挂起必须重启的解决方法

在XP上为了测试程序安装MSSQL的时候出现"以前的某个程序安装已在安装计算机上创建挂起的文件操作.运行安装程序之前必须重新启动计算机"错误.无法进行下去,而且重启后也出现该提示的解决方法如下: ⒈在"开始/运行"中输入Regedit就可打开注册表编辑器,对注册表进行查看或修改 ⒉打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRen

桌面文件删除时提示文件不存在的解决方法

  问题现象: 桌面上突然有个文件,点击删除报该文件不存在与桌面中,无法删除   解决方案: 1.新建一个txt文件,随便命名,如del.txt 2.打开该txt,内容填"DEL /F /A /Q \\?\%1RD /S /Q \\?\%1",然后保存 3.更改txt的后缀名为bat,即del.txt –>del.bat,然后会发现图标变了 4.将之前无法删除的文件直接拖拉到该图标中即可完成删除

django使用postgresql时提示主键冲突

在django使用postgresql数据库时,当你使用默认主键,但当你手动使用添加记录到相关数据库时(非insert操作,如使用navicate直接在表中复制粘贴记录),此时django在插入数据时,会提示主键冲突,这是因为postgresql的主键自增是建立在它内部机制工作的,你可以使用如下sql来获取或设置相关的自增ID序列: select nextval('表名_id_seq'); #此操作会获取当前基于表中最大ID,并会设置ID+1 select currval('表名_id_seq'

点击删除时弹出是否删除提示框

点击删除时弹出是否删除提示框:在通常情况下,想要点击删除某一项的时候,一般会弹出一个框,以提示操作者是否真的要删除此项,这样可以免于出现误操作,比较人性化的一个举措,下面就简单介绍一下如何实现此效果.实例代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.soft

Linux下通过rm -f删除大量文件时提示&quot;-bash: /bin/rm: Argument list too long&quot;的解决方法

Linux下通过rm -f删除/var/spool/postfix/maildrop/中大量的小文件时提示: "-bash: /bin/rm: Argument list too long" 如图: 通过ls /var/spool/postfix/maildrop/*|wc -l 发现文件数达到21万多,见附件: 原因:rm -f的参数过多 解决方法:可使用awk一次删除一个的方式进行删除,但必须先进入该目录下,操作方法如下:1.先进入该目录下:cd /var/spool/postfi

U盘删除文件时提示“文件或目录损坏且无法读取”的解决方法

U盘删除文件时提示"文件或目录损坏且无法读取"的解决方法 出现原因:在写入或读取文件时,进行复制操作,此时复制到的文件是不完整的!或者移动硬盘/U盘中途被拔出,导致文件损坏 异常现象:被删文件(夹)属性为"只读",更改属性后删除,出现错误提示:提示文件损坏. DOS下使用rd /s命令强制删除失败,进入到该文件夹下使用del /f命令强制删除失败. 使用冰刃.unlocker等强制粉碎文件工具都提示文件损坏 解决方法:CMD下运行命令" chkdsk /f