PostgreSQL 数据库对大小写的处理规则如下:
- 严格区分大小写
- 默认把所有 SQL 语句都转换成小写再执行
- 加双引号的 SQL 语句除外
如果想要成功执行名称中带有大写字母的对象,则需要把对象名称加上双引号。
验证如下:
想要创建数据库 IZone,明明已存在的数据库名为 izone,却报错:数据库已存在。
说明:PostgreSQL 数据库默认把所有 SQL 语句都转换成小写再执行。
若为名称 IZone 加上双引号,则执行成功。
想要删除数据库 IZone,出现常见报错:
ERROR: 错误: 其他用户正在使用数据库 "IZone"
DETAIL: 那里有1个其它会话正在使用数据库.
SQL 状态: 55006
执行下面三行代码终止连接进程:
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE datname='IZone' AND pid<>pg_backend_pid();
注意这里使用的是单引号。
理应返回一个 boolean 值的却没有,但是最后又删除成功了(?)
再次删除,执行成功。
plus:查看 “视图” pg_stat_activity 。
综上,建议以后都用小写。
参考博客:关于PostgreSQL数据库的大小写_pg 大小写_qq844385029的博客-CSDN博客