Mysql数据表字段设置了默认值,插入数据后默认字段的值却为null,不是默认值

摘要:
我将MySQL数据表中某个字段的默认值设置为1。当将数据插入到表中时,该字段的值为空,而不是默认值。

我将mysql的数据表的某个字段设置了默认值为1,当向该表插入数据的时候该字段的值不是默认值,而是null。

我的错误原因:

对数据库的操作我使用了持久化工具mybatis,插入数据的时候插入的是整个实体,直接使用的是持久层的insert(实体对象)方法插入的数据

这样就会出现一个问题,当实体对象中某个属性值为空时,对应的数据库的字段就会插入null值,而默认值是插入时不指定该字段,该字段的值才会取默认值。

所以这里我是向设置了默认值的字段插入了null,才导致出现上述错误。

我的解决方法:

这时候我改用insertSelective(实体对象)方法插入实体对象就不会出现上述问题了

因为该方法会自动过滤掉实体对象中值为空的属性,对应的数据表字段也不会被插入null了。

以上是我个人遇见的问题和解决方法,希望对您有所帮助!

免责声明:文章转载自《Mysql数据表字段设置了默认值,插入数据后默认字段的值却为null,不是默认值》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇阿里云、腾讯云、七牛、网易云CDN简单对比Lua保留指定小数位数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL 百万级分页优化(Mysql千万级快速分页)(转)

http://www.jb51.net/article/31868.htm 以下分享一点我的经验 一般刚开始学SQL的时候,会这样写 复制代码 代码如下: SELECT * FROM table ORDER BY id LIMIT 1000, 10; 但在数据达到百万级的时候,这样写会慢死 复制代码 代码如下: SELECT * FROM t...

MySQL 日期与时间的处理

1.查询当前日期时间:函数有now(),localtime(),current_timestamp(),sysdate()。 mysql> select now(),localtime(),current_timestamp(),sysdate(); +---------------------+---------------------+--...

SqlServer 数据库同步的两种方式 (发布、订阅),主从数据库之间的同步

最近在琢磨主从数据库之间的同步,公司正好也需要,在园子里找了一下,看到这篇博文比较详细,比较简单,本人亲自按步骤来过,现在分享给大家。 在这里要提醒大家的是(为了更好的理解,以下是本人自己理解,如有错误,请指出):主数据库一般是把数据发布出去,然后在连接从数据库对发布的数据进行订阅,同步到从数据库中。 1、发布。发布需要用实际的服务器名称,不能使用服务器的...

分布式架构数据常见问题阅读总结

域是一个虚拟的分类,几个系统属于某一个域,例如网上银行和手机银行都属于电子渠道领域; 传统的单体应用,指的就是系统,在微服务架构下,单体应用采用前后端分离模式,前端一般使用 Nginx,Ngnix 进程间采用主备模式,系统的后端可以分为多个应用,每个应用有一组对等的应用进程(也称为应用实例)提供服务,每个应用对应一个数据库,实际上在分库的情况下,有可能一个...

SqlServer将数据库中的表复制到另一个数据库

在使用SqlServer的过程中,我们可能需要将表从一个数据库复制到另一个数据库中,今天,我为大家介绍这种操作的具体方法及步骤。可能对大部分人来说是很简单的东西,但是还是要记录下来,好记性不如烂笔头嘛。希望可以帮到需要的同学。。。 复制表结构: 第一步:首先,打开并连接Sql Server,在源数据库Source_db(源数据库名称)上右键,然后依次点击“...

阿里 otter搭建部署

IP:10.10.6.172 部署:mysql目标库,mysql源数据库 IP:10.10.6.173 部署:zookeeper,manager,node,canal (也都部署到源库服务器上) 由于otter进行数据库同步,目前仅支持row,所以需要把源库的binlog_format改为ROW log-bin=mysql-bin expire_logs_...