记一次Postgresql的毒打
2021/8/20 2:05:42
本文主要是介绍记一次Postgresql的毒打,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
背景
beego orm + pgsql + powerDesigner
过程
今天,在使用beego orm读数据库时,死活读不上数据,调源码时发现是tag匹配不上数据库里的字段
一看,pgsql里的字段全是小写
可是我在powerDesigner里设计CDM时,用的是驼峰命名,问题不在这
再往下查,生成的PDM也是驼峰的
继续往下看建表的SQL脚本,依旧是驼峰的
难道是pgsql的问题?
再通过Navicat写点SQL,字段全弄成驼峰形式,查询没问题,字段全弄成大写,查询也没问题
基本破案了,在处理sql时,pgsq大小写不敏感,处理的时候都弄成小写去处理了
影响
虽说可以通过双引号的方式让pgsql接受大写字母,但如果是powerDesigner生成建表语句,就没办法生成驼峰的字段...
一旦再设计CDM或PDM时添加双引号,生成出来的SQL语句,将会被加上额外的双引号...直接没法执行
所以在通过powerDesigner设计表结构时,最好使用下划线命名法,以避免数据库更换带来的坑
解决办法
- 更改结构体内orm tag为小写,工作量巨大,而且换库之后还会重演悲剧
- 为字段添加别名, 别名加上双引号,工作量同样巨大,哭了
- 换NodeJs(皮一下,脚本语言在这方面还是有优势的,但,当赋值错了,函数参数顺序不对,参数个数不对。。查问题时,就有得哭了)
参考
PostgreSQL中表名、字段名大小写问题
来自为知笔记(Wiz)
这篇关于记一次Postgresql的毒打的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-05快速清空 PostgreSQL 数据库中的所有表格,让你的数据库重新焕然一新!
- 2024-01-04在PostgreSQL中创建角色:判断角色是否存在并创建
- 2023-05-16PostgreSQL一站式插件推荐 -- pg_enterprise_views
- 2022-11-22PostgreSQL 实时位置跟踪
- 2022-11-22如何将PostgreSQL插件移植到openGauss
- 2022-11-11PostgreSQL:修改数据库用户的密码
- 2022-11-06Windows 环境搭建 PostgreSQL 物理复制高可用架构数据库服务
- 2022-10-27Windows 环境搭建 PostgreSQL 逻辑复制高可用架构数据库服务
- 2022-10-11PostgreSql安装(Windows10版本)
- 2022-09-13PostgreSQL-Network Address类型操作和函数