MySQL字段设置默认数值,但是插入后不是设置的数值而是0
Posted 摸鱼职业哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL字段设置默认数值,但是插入后不是设置的数值而是0相关的知识,希望对你有一定的参考价值。
今天工作任务是一个需要二次开发的项目,好吧,到底多少次了我也不知道,直接拉下来开干就完事了!需求是个简单的对一个插入数据的功能进行二次开发,按照需求修改部分地方即可。
但是遇到个很基础的问题,也失露出我JAVA基础拉稀的事实(细小字体大家应该看不见)
但是我发现我改完后测试就出现了问题!
我插入的数据!统计用的c_report_count 字段是 0 !
而用线上版本的插入却是 1 !
我第一时间想到数据库的表字段设置问题,线上版本插入保存的1 ,而我本地插入保存的是0 ,这显然不会是表问题,但是我还是打开检查了一遍!
没有问题!设置的默认:1
我当时脑子一片空白,但是想了想后,一定是插入的时候在哪set了0吧!
这里就不放代码了,因为根本没有set这个字段。。。
那为什么我这插入就是 0 呢?
一番无脑看 新闻摸鱼 蹲大厕 打水 泡茶 拿零食后
打开实体类检查,终于找到了这个问题的源头!
啊!~ 是刻在DNA里的int默认值是 0 !
将类型改成Integer 后重启项目再次测试插入后c_report_count 就是 1 了!
没错!int的默认值是0 ,如果这个字段没有set值进去那么默认就是0 ,所以插入到数据库里的数据的字段是 0 ,而Integer 的默认值是null 也就是说,插入到数据库后mysql发现你的这个字段没有值,那么就会输入上你设置的默认值!(前提是你要给该字段设置默认值
但是我感觉这里问题主要还是拉取下来的版本问题,可能线上发布的版本还握在某位同事手里。。。
以上是关于MySQL字段设置默认数值,但是插入后不是设置的数值而是0的主要内容,如果未能解决你的问题,请参考以下文章