工作上遇到一个问题:oracle 迁移至mysql 时,需要一段时间双写两个库作为缓冲阶段,而mysql 没有同oracle 一样的自增ID,就采取了雪花算法生成ID,两库都用其作为ID,进而oracle 的插入sql 就需要改造为指定ID,但诡异的是有一些oracle 表sql 改造后还是插入了自增的ID,问同事、网上搜索多日都没找到答案,最后还是一位罩得住的大哥破案了:
有这个问题的那些表是建了触发器 trigger,有插入之前就生成ID了。
删除 trigger 即可解决(可能只有DBA 才有权限):
drop trigger trigger_name;