记一次对Mysql非空字段的默认值的误解经历

时间:2024-04-11 20:39:05

先看下表设计和插入的sql语句: 

记一次对Mysql非空字段的默认值的误解经历记一次对Mysql非空字段的默认值的误解经历

插入时报错:

记一次对Mysql非空字段的默认值的误解经历

究其原因,实际上:

1.mysql字段默认的含义:在插入时不指定该字段和该字段的值,那么此时才会走默认值;
2.以mybatis举例,如果是插入实体,那么为空的字段就会插入空;
3.如果不想mybatis等持久化工具插入空,可以尝试insertSelective方式进行,这样为空字段会被剔除(预先进行判空处理)不为空才拼接该字段的属性并在values下面填充具体的对应值;

记一次对Mysql非空字段的默认值的误解经历

去掉该EnabledFlag字段插入 则正常插入!