在JSP中,在插入记录的同时怎样获得该记录的自动增长列的编号?不要告诉我在插入后再查询啊,因为这关系并发访问数据库的问题。因为我想获得该记录编号,如果
查询的时候又有人插入了记录就不好办了。

解决方案 »

  1.   

    忘记说了,数据库是SQL server2000.
    我在项目中的原意是新增加一个帖子后,自动转到这个帖子。所以我就想获得增加的这个帖子的ID号。
    或者说为了实现这个功能有没有什么其他的方法。
      

  2.   

    select count(*) as cnt from table  然后 cnt + 1 就是当前的记录号
      

  3.   

    回楼上的,我是想获得新插入的记录编号。如果用select查询之前,又有人插入了记录了,你怎么办?得考虑并发访问
      

  4.   

    把插入数据做成存储过程,设置1~n个输入参数,以及1个输出参数
    输出参数就是ID
    这样应该没有并发问题吧……
      

  5.   

    忘记了似乎是
    SELECT @@IDENTITY返回当前Connection中最近一次生成的ID字段的值
      

  6.   

    > select count(*) as cnt from table 然后 cnt + 1 就是当前的记录号麻烦您再想想!
      

  7.   

    to:zwf88(峰)
    你的说法是错误的,比如删除了中间某些记录,主键id的值可能不是连续的;你那个只是得到了当前数据库中的记录个数
      

  8.   

    哦,我自己都看错了。但那是shine333(enihs)的错误。
    但是我说的还是最大值。我刚开始以为shine333(enihs)求的是最大值呢。就算是最大值
    那也不能保证查询出来的最大值一定就是你刚才插入的那条记录的ID号。OK,明白了吧?
      

  9.   

    顶顶-----------------------------
    http://www.5ai7.net/
      

  10.   

    在SQL中可以不做递增,做一个序列表,每次增加时可以先到序列表取ID,然后再做insert,你不就有你当前插入行的ID了么!
      

  11.   

    如果你知道怎么样能对你插入的那条记录进行update,那你就能的到你想要的ID号,就这么简单的事.别告诉我你们除了ID以外其他信息还有可能会完全重复
      

  12.   

    statement提供一个函数,getGeneratedKeys();使用这个函数试试,前提是你的数据库jdbc驱动要支持。如果不支持的话,通过resultset也可以获得,不过麻烦点。
      

  13.   

    在SQL中可以不做递增,做一个序列表,每次增加时可以先到序列表取ID,然后再做insert,你不就有你当前插入行的ID了么!-----------------------------------这个方法是可以的。。哈哈,设计模式里可都讲到主键设置的策略呀。。
      

  14.   

    adachi() 的方法在我这个环境下可行。
    不过,其他方法也可以,不过要为了这个目的再去建个表什么的,那个实在是太浪费。其实在某些特定的环境下力求最简洁的方法。恩  呵呵!
      

  15.   

    狂晕!!!lz指责我干嘛,看不懂引用的记号阿!!!
    回复人:lianhg(lianhg) ( ) 信誉:100 2006-9-25 19:58:30 得分:0
    ?
    select count(*) as cnt from table 然后 cnt + 1 就是当前的记录号回复人:shine333(enihs) ( ) 信誉:125 2006-9-25 21:21:49 得分:0
    ?
    > select count(*) as cnt from table 然后 cnt + 1 就是当前的记录号麻烦您再想想!
      

  16.   

    楼上的....根据你引用的以及你自己写的就已经足够说明你也同意lianhg(lianhg)的这个说法,
    那我说这是你的错有错吗?