MySQL自增列id:插入的值大于id的自增值

从Oracle切换到阿里云; 云下的Oracle数据需要同步到Polardb(mysql8),云上的新系统(rds--mysql5.7)数据也要同步到PolarDB的同一张表里;

rds库中,有自己的id自增列, 同步到polardb上使用rds自己生成的值(不使用polardb的id自增值);

Oracle数据没有id列,通过Polardb的id自增列自动生成值;

因此为了避免id冲突,将rds的id自增列的起始值,从5亿开始,这样polardb库中5亿以下的值就留给oracle做数据同步(反正2、3个月以后,oracle就下线了,没有新的数据进来了);

但是当rds同步到polardb后,发现polardb的id自增列从5亿多开始继续下去了,而不是原来设想的在小数字端不断自增;这样就发生了Oracle同步来的数据,和rds同步来的数据发生覆盖现象;

看来系统为了保证id自增列不发生冲突,如果插入确定值大于AUTO_INCREMENT值,则自动将AUTO_INCREMENT值设置成插入的确定值(+1);

 

你可能感兴趣的:(db,技术区)