1、首先新建一张表结构。
2、select * from t_temp_test 查看下这张表已经建好在数据库里面了。
3、查看该t_temp_test表结构 sp_help t_temp_test,可以看到字段column_b 的默认值定义为空,默认属性是DF__t_temp_te__colum__19DA45DB。
4、修改表的默认值先要把表的默认属性删除了才能修改,删除表的默认属性。
5、删除之后再执行sp_help t_temp_test,这个时候默认值属性已经被删除了的。
6、然后再重新给字段新加上默认属性alter table t_temp_test add constraint DF__t_temp_te__colum__19DA45DB DEFAULT (('123')) for column_b。
7、执行完毕再查询表结构sp_help t_temp_test可以看到表的默认值已经被更改为字符串‘123’。
mysql default值只有在insert语句中没有这个字段时才会生效,如果insert中有插入该字段而该字段取值又为null,null值将被插入到表中,default此时失效。在mybatis开发中通常会直接插入一个表对象,表中所有字段都会插入,因此如果要设置默认值,应该在业务层写逻辑,而不能依赖mysql的default来设置默认值。
注:可以使用mybatis的动态sql解决该bug
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)