GBase 8a自增列不允许insert报错auto_increment column should not be specified in insert

GBase 8a自增列不允许insert报错auto_increment column should not be specified in insert

GBase 8a从V95版本开始支持自增列,同时也限制该列被手工insert,update等操作,否则会报错 auto-increment column should not be specified in insert。
GBase 8a的自增列,不支持insert,update等操作,除了设置为default,0,null外。
解决方案:
避免更新自增列
既然选择了自增列,那么就不要指定该列的值,也就自动避免了【重复】。在insert update操作时不要对自增列做主动修改即可。
临时允许参数
当表初始化时,也是有可能要按照预设的值插入数据的,此时可以通过一个参数临时打开这个限制。
_gbase_auto_increment_allow_insert
该参数默认为0,不允许insert
show variables like '%increment%';
通过set 语句设置该参数,支持session级。
set _gbase_auto_increment_allow_insert=1;
show variables like '%increment%';
之后就可以对该表做insert了,但注意,不再保证自增列数据的唯一性。请用户自行避免自增列的数值重复。
如果恢复参数,则下一个自增列的值,会自动计算。如下手工insert到了id=100,关闭参数后,自增的列会保证下一个数值比当前最大的更大,确保自增。
参考https://www.gbase8.cn/10012