mysql 有一个表id是自增长
现在经常删除一些数据,比如删除id=20-30所有的记录
由于该id是自增长, 所以下一id从31开始。
但是现在程序员要求每次插入都从最大值开始插入 , 这样上面的情况id应该从21开始
我思考触发器但是有点欠妥??
不知道如何解决这个问题 (将id的自增长去掉?
每次插入前取最大id值后再插入
但对于某个批量的插入所不是很好的 , 一次批量插入200条的时候,发现还是要用自增长。
)
现在经常删除一些数据,比如删除id=20-30所有的记录
由于该id是自增长, 所以下一id从31开始。
但是现在程序员要求每次插入都从最大值开始插入 , 这样上面的情况id应该从21开始
我思考触发器但是有点欠妥??
不知道如何解决这个问题 (将id的自增长去掉?
每次插入前取最大id值后再插入
但对于某个批量的插入所不是很好的 , 一次批量插入200条的时候,发现还是要用自增长。
)
解决方案 »
- SQL语句,where后面接多个AND问题
- Lost connection to MySQL server at 'reading initial communication packet'
- MySQL_6_0_3_alpha.zip是mysql的什么版本?因为看到MYSQL的版本也只是到5.1而已...
- 请教一个MYSQL 取日期的问题
- mysql 表死锁
- 学习SQL怎么搞呢?
- 新安装MySQL 5.0.37里边无法录入中文,数字与英文字母都正确,这个到底怎么弄呀?
- 重装了MYSQL后如何把以前的数据库加入到新的MYSQL里,使旧的数据库表也能访问。
- C#代码实现 mysql数据库备份
- mysql 结构不同多表查询,请教语句
- mysqldump执行总报"mysqldump: unknown option '--quick4'"
- mysql qps计算?
当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;