從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);