记一次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的毒打的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程