Bootstrap

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会覆

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

;