mysql 有一个表id是自增长
现在经常删除一些数据,比如删除id=20-30所有的记录
由于该id是自增长, 所以下一id从31开始。
但是现在程序员要求每次插入都从最大值开始插入 , 这样上面的情况id应该从21开始
我思考触发器但是有点欠妥??
不知道如何解决这个问题 (将id的自增长去掉?
每次插入前取最大id值后再插入
但对于某个批量的插入所不是很好的 , 一次批量插入200条的时候,发现还是要用自增长。
)
现在经常删除一些数据,比如删除id=20-30所有的记录
由于该id是自增长, 所以下一id从31开始。
但是现在程序员要求每次插入都从最大值开始插入 , 这样上面的情况id应该从21开始
我思考触发器但是有点欠妥??
不知道如何解决这个问题 (将id的自增长去掉?
每次插入前取最大id值后再插入
但对于某个批量的插入所不是很好的 , 一次批量插入200条的时候,发现还是要用自增长。
)
当id的下一个值(默认) 和 当前的最大值max(id)+1 不匹配
如何解决这个问题(如果相等我就可以一次行批量插入1前条数据 否则要先插入一条max(id)+1
之后再插入999条数据)
也想找他诚恳 征程 就差不痛哭流滴了, 但是这个还是有这个需要 他人不在现谈这个问题
能够得到id的下一个值(默认)?????
a
2,3,4 ,7,,8,9, 11这样必须执行 select max(id)+1 from a(本来我想用另外1个字段来记录最大值 但是发现select max 就可以啦)
放弃使用触发器 (避免楼上谈到的维护问题)改用存储过程 这样更容易维护还开发 (没有什么不良影响)每次删除的时候在存储过程里 update上条记录的判断标志b=1来实现是否是连续的
update ba2 a, (select max(a) as aa from ba2 where a< 3) b set a.b=1 where a.a=b.aa;
delete from ba2 where a=3;