Mysql字段设置默认值失效问题

mysql+mybatis 场景,发现执行insert后,某个字段的默认值没有生效且值为null(默认值为服务机构)。已解决该问题。

在mysql内执行sql(模仿mybatis场景):

1:创建表son,字段有自动递增主键id,默认值为服务机构的val,普通字段parentId;为val赋值为null(也就是new出的实体类

Son的初始属性为null)

insert into son values(0,null,null)

2:执行insert语句,发现val并没有赋值默认值 “服务机构”。通过下图可知
在这里插入图片描述

3:更新insert语句,把val去除,再次执行,会发现val默认值生效(值为服务机构)。

	insert into son(id,parentId) values(0,null)

在这里插入图片描述

由上不难看出,当设置默认值的字段赋值为null时会把默认值覆盖掉

因此,我们使用mybatis执行insert语句,发现字段默认值没有生效,看看该字段是否添加不等于null或者

不等于空的过滤,因为在程序中,通过new的方式声明类的时候,字段属性全部是null。

而我们在mybatis中若是没有对赋有默认值的字段没有进行null过滤,就会导致赋值该字段null,null会覆

盖默认值。
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

博客胡

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值