Field ‘id’ doesn’t have a default value解决方法

今天在练习mybatis的小Demo的时候出现了这个错误,上网查了一下,解决方法有很多种,我在此记录一种我觉得方便有效的方法,方便日后出现类似错误了自查。
出现这种方法的主要原因是设置id这个主键的时候没有定义自增,所以就会报这样的错误。
解决办法如下:
在这里插入图片描述
进入对应数据库,使用如下命令:

alter table 表的名称 modify 列的名称(含有主键,类型为int的列)int auto_increment;

然后就OK了!

tips:
这里拓展一下小知识关于自增值修改机制
如果字段id被定义为AUTO_INCREMENT,在插入一行数据的时候,自增值的行为如下:
1.如果插入数据时id字段指定为0、null或未指定值,那么就把这个表当前的AUTO_INCREMENT值填到自增字段
2.如果插入数据时id字段指定了具体的值,就直接使用语句里指定的值
假设,某次要插入的值是X,当前的自增值是Y

1.如果X<Y,那么这个表的自增值不变

2.如果X>=Y,就需要把当前自增值修改为新的自增值

新的自增值生成算法是:从auto_increment_offset(初始值)开始,以auto_increment_increment(步长)为步长,持续叠加,直到找到第一个大于X的值,作为新的自增值

Logo

鸿蒙生态一站式服务平台。

更多推荐