经常出现这种跳你是否查看一下你程序是否有问题,比如某个地方一下插入1000,然后又是失败的这种情况
$sql = "insert into cclog (cc_id, cc_time, log_content, recorder, timestamp) values (" . $cc_id . ", '" . $log_date . "', '" . $log_content . "', '" . $log_recorder . "', '" . $timestamp . "')";
任何事务原因的事务回滚就行。 记下INSERT语句,记下COMMIT成功,两者的数量差就是跳过的ID个数。
既然你这么肯定没有其它的途径插入数据。 那么在程序中记录日志啊,不仅成功的操作,把所有的插入操作都记录下来,统计下成功数和失败数,是否和ID一致。
一个事务不会只操作一个表啊。比如: A调试程序,正好长时间中断在锁定表二之后。 B往表一插入一条记录(自增了),再去更新表二时锁冲突,回滚。 这就断号了。 只要A锁定的这段时间中B反复操作,就会跳过很长一段ID。
自增只保证唯一,没有义务保证连号。 你能保证网页的插入操作永不出错不(包括多用户加锁冲突)?
。。。。我问过了,都这么久还没人回答
自增长缓存了一批值
22,300
社区成员
121,734
社区内容
加载中
试试用AI创作助手写篇文章吧