>>我在插入第一条记录时
>>通过 last_insert_id 获取 Id 号,以后就每插入一条记录就 id 自动加 1数据库不是只为你服务的,你要保证在你插入的过程,别人无法插入,所以要用到锁。>>我希望在插入第一条记录之前就获得表所维护的 id 的最大值。怎么办?无法理解
>>通过 last_insert_id 获取 Id 号,以后就每插入一条记录就 id 自动加 1数据库不是只为你服务的,你要保证在你插入的过程,别人无法插入,所以要用到锁。>>我希望在插入第一条记录之前就获得表所维护的 id 的最大值。怎么办?无法理解
{
insert a record to table;
id = last_insert_id(); //需要访问数据库,代价太大
porcess( id );
}我想改为: id= get the biggest id ; //访问一次数据库while(...) //循环 100000 次
{
insert a record to table;
porcess( id ++);
}如何实现:id= get the biggest id ; ? 我用 last_insert_id() 得不到结果,只能在插入一条记录后,用该方法才有效。谢谢!
楼主的要求可以这样子得到.SELECT MAX(id) FROM recordTable;
这里得到的就是最大的ID, 新插入一条记录后.新记录ID 为该数值+1不过楼主这个方法的确有点....:)
你的代码要保证的是.
A: 只有你一人在向 recordTable 表中插入记录
B: 你的代码必须是单线程运行.
C: 你的应用程序不可以运行多个实例.
获取返回结果集中的 Auto_increment 列.
该列值就是下一个自增值了.