某表中有一自增字段,怎样返回刚刚插入的一条记录的自增字段值? 取插入前最后记录ID+1,或者再访问数据库取最后一条记录的ID,是不是太笨了点? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select max(id) from table; 好像只能select max(id) from table sequence?我记得mysql好像不支持 mysql确实有个自增类型。你看它的文档,应该有地方说明的。不过我是用手动方式获取ID的。或者这样,先插入一条空记录,取回ID,再更新内容。 看什么数据库,具体情况可具体处理对于sqlsever2000可如此做: 表 table1String sql="SELECT IDENT_CURRENT('table1') AS 'Identity'"; ResultSet rs= conn.executeQuery(sql); rs.absolute(1); int youwant = rs.getInt(1); 很简单的呀,如果是使用mysql的话!例如:sql="select ID from test order by ID desc limit 0,1"这样就可以取出来刚刚写入的那一条记录了呀????(limit 0,1是mysql独有的,表示,从第0位开始,取1个记录) 另外, kk_wyx(桃花岛) 所说的方法,在任何的数据库里都能用,不只是sqlserver比如,在mysql中sql="select count(*) as abc from test"Conn.queryRS(conn,sql)rs.getInt(abc)就可以了 哦? select语句是怎样保证读出的一定是我刚刚插入的那条记录呢? 如果在我刚刚插入记录的时候,有另一个人也插入了一条记录,谁能保证,我读出的那条,不是别人刚刚插入的那条呢?limit只是有助于分页这类的功能,好象和我要求的功能关系不大.... 在Jive中有一个多态的应用,处理自动增长字段,很好,我现在就是这样用的! to telescope(望远镜) 这个问题我也遇上过头大了好几天不过我现在做的是在这个方法中用了单线程做的,在这个方法中select max(.)来取的刚刚插入的记录的 yingyeqi(风中男孩) select count(*)的方法肯定不行,难道你的数据从来都不进行删除操作?删除一条记录后,你的方法立即出错!!我现在用的就是楼上的方法,单机上做没问题,用户少时多数情况下也是正确的,但用户多,同时进行的操作比较多时就危险了!!!Java怎么会出这么大的漏洞?? 用 SELECT MAX,插入方法用同步方法来做,即在插入函数前或语句块前用synchronized 一条插入的SQL语句是没有办法做到的!为了在不同数据库间移植我建议你不要使用自动增长字段,而改用自己管理的方式! jdk1.4中的jdbc statement对象可以返回自动产生的值 to zhxx([email protected]) 怎样取得这个返回值,举例示意一下行吗? 文件上传的一个问题 spring security中关于cookie的问题 struts 2.0 标签s:date 问题 rhel5.3 tomcat不执行 非常郁闷,在window下正常,在linux下使用javac编译提示找不到包(在线等待) 在线急求工行在线支付B2B接口问题。 请教各位大侠:如何在链接里提交页面? 編釈失敗 原因不明 spring mvc controller 里发送http post请求返回的中文数据乱码 通过jsp、servlet查询数据库 关于数据入库问题(在线等) 如何使用<div>标签?急,在线等!!!
我记得mysql好像不支持
你看它的文档,应该有地方说明的。
不过我是用手动方式获取ID的。
或者这样,先插入一条空记录,取回ID,再更新内容。
对于sqlsever2000
可如此做: 表 table1String sql="SELECT IDENT_CURRENT('table1') AS 'Identity'";
ResultSet rs= conn.executeQuery(sql);
rs.absolute(1);
int youwant = rs.getInt(1);
例如:
sql="select ID from test order by ID desc limit 0,1"
这样就可以取出来刚刚写入的那一条记录了呀????(limit 0,1是mysql独有的,表示,从第0位开始,取1个记录)
Conn.queryRS(conn,sql)
rs.getInt(abc)
就可以了
limit只是有助于分页这类的功能,好象和我要求的功能关系不大....
删除一条记录后,你的方法立即出错!!
我现在用的就是楼上的方法,单机上做没问题,用户少时多数情况下也是正确的,但用户多,同时进行的操作比较多时就危险了!!!
Java怎么会出这么大的漏洞??
怎样取得这个返回值,举例示意一下行吗?