mysql default设置了默认值但插入依然为null

mysql default设置了默认值但插入依然为null,第1张

mysql default值只有在insert语句中没有这个字段时才会生效,如果insert中有插入该字段而该字段取值又为null,null值将被插入到表中,default此时失效。在mybatis开发中通常会直接插入一个表对象,表中所有字段都会插入,因此如果要设置默认值,应该在业务层写逻辑,而不能依赖mysql的default来设置默认值。

注:可以使用mybatis的动态sql解决该bug

MySQL不能在建表时用default

curdate()指定字段默认值为当前日期,所以一定要在插入或更新的时候指定一个日期或者用curdate()函数,例如insert

into

(字段)

values

(curdate())

如果不指定一个时间,那就按照系统默认值也就是日期"0000-00-00"。

default ''

指的是 默认空字符

default null

指的是 默认值为null

null和empty string是有区别的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7184231.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存