关于 PostgreSQL 删除数据库 - 命令行删除,报错数据库不存在,pgadmin 报错存在会话链接 导致无法删除数据库问题

序言

测试环境:

bash 复制代码
Windows 10

问题

笔者尝试过在 cmd 命令行,使用PostgreSQL 的 psql 工具登录 postgresql,删除某个有问题的数据库,准备新建重载该数据库时,发现 DROP DATABASE database_name ,竟然报错该数据库不存在,可是笔者使用命令 \l查看数据库时,发现那个数据库明明就还在那里存在着,真就古怪了,后面尝试 pgadmin 可视化工具,删除数据库,报错无法删除该数据库,原因是有一些会话链接存在,导致无法手动删除。

解决方法

用超级管理员,如 postgres用户,登录 postgresql,记得输入口令,即密码。

bash 复制代码
psql -U postgres -d postgres

然后在 postgres=# 下运行如下命令:

java 复制代码
SELECT CAST(pg_terminate_backend(pid) AS VARCHAR(10)) FROM pg_stat_activity WHERE datname='test-db';

注意,上述语句里的test-db要替换成您将要删除的数据库名即可;

差别多类似下面的样子,就是成功。

bash 复制代码
pg_terminate_backend
----------------------
true 

然后有一点是需要注意的,之后笔者在 cmd 命令行,使用 DROP DATABASE database_name 命令,依旧无法删除指定的那个问题数据库,最后还是通过 pgAdmin 可视化工具,右键点击数据库 DELETE ,删除数据库。

补充

PostgreSQL 数据库大小写规则

该链接是笔者后面了解到细节问题,关于数据库名要加双引号或单引号,在 PostgreSQL 很关键,最好加上去,当然什么时候用双引号和单引号,经验使然。


参考链接

PGSQL删除数据库里提示数据库有连接会话,不能删除怎么办?

相关推荐
Gent_倪7 分钟前
MySQL分库、分表、分区详解
数据库·mysql
额额额对了14 分钟前
Linux 数据库开发实战:使用 C 语言与 SQLite3 构建轻量级终端词典
linux·数据库·oracle
qq_2468397531 分钟前
postgresql xxhash64 哈希函数实现
数据库·postgresql·哈希算法
希望奇迹很安静32 分钟前
等级保护测评
网络·数据库
会博通·代码搬运工43 分钟前
疾控档案落地难点:异构业务系统并存,高价值纸质凭证如何回流业务闭环
数据库·档案管理·档案管理系统·智能扫描设备·会博通
数智启示录1 小时前
Apache Kafka Consumer 扩到 40 个仍不提速:Partition 上限锁死有效并行度 【Kafka合集】
数据库·经验分享·分布式·缓存·面试·kafka·apache
数智启示录1 小时前
Apache Kafka 幂等 Producer 的边界:Exactly-Once 到了 MySQL 为什么失效 【Kafka合集】
数据库·经验分享·分布式·mysql·面试·kafka·apache
Java小白笔记1 小时前
Java 实现阿里云 OSS 文件上传链路:普通上传、秒传、分片与断点续传
java·开发语言·数据库·spring·阿里云
—Miss. Z—1 小时前
计算机三级数据库技术—填空题
数据库·mysql
数智启示录1 小时前
Apache Kafka 同 Key 仍会乱序:从分区 Offset 到业务可见的四道边界 【Kafka 合集】
大数据·数据库·经验分享·分布式·面试·kafka·apache