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

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

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

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

oracle数据库中的default的用法是:在创建数据库表时,可以指定一个DEFAULT值(即默认值)。对数据库字段使用默认值有助于将数据库设计问题与应用程序代码隔离。可以在以后某个时候通过一条ALTERTABLE命令改变一个字段的默认值,改变之后应用程序代码会立即开始使用新值。即DEFAULT值只有当一个字段没有在INSERT或MERGE中指定值,或者使用了DEFAULT关键字时才会使用。如果你不显式地声明一个DEFULAT值,Oracle将隐式地将默认值定义为NULL,而且DEFAULT关键字也是这样。从Oracle9i开始,可以在DEFAULT子句中使用诸如SYSDATE或CURRENT_TIMESTAMPE之类的伪字段。例如:


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

原文地址: http://outofmemory.cn/sjk/9839876.html

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

发表评论

登录后才能评论

评论列表(0条)

保存