Field 'id' doesn't have a default value解决方法
Field ‘id’ doesn’t have a default value解决方法今天在练习mybatis的小Demo的时候出现了这个错误,上网查了一下,解决方法有很多种,我在此记录一种我觉得方便有效的方法,方便日后出现类似错误了自查。出现这种方法的主要原因是设置id这个主键的时候没有定义自增,所以就会报这样的错误。解决办法如下:进入对应数据库,使用如下命令:alter table...
·
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的值,作为新的自增值
更多推荐
已为社区贡献1条内容
所有评论(0)