今天被这个问题坑了一天,定时任务向数据库中插曲数据无效,也不抛异常(这是坑的地方)。遇到这个问题我的直觉告诉我,是逻辑的问题,不是 db的问题(程序员都这样,做事都是优先考虑自己的问题)。于是看监控,看日志,最后无奈自己手工走流程,都没有发现任何问题,于是直觉又告诉我是db的 问题,但是我一直在做无用的纠结(跑程序),搞半天还是无用(其实这事儿应该自己在库上直接运行一条sql,一了百了),但是自己还是有些一根筋,没有想 到这个方法(估计是怕搞错了线上数据吧)。
自增id是这样的: 定义id的时候根据类型不同,自增id的上限不同,int类型的上限是2的32次 - 1,超过这个上限,在insert 是会抛异常的,那么究竟是什么原因导致没有抛异常呢,是因为sql中用了duplitkey(不信你试试)。 解决这个问题的方法,1.为了快速修复,在check修改id无影响的话,可以alter id的类型,改成更大的 如bigint,另一种方法,那就是切表呗。