2011-10-01 45 views
0

我有一个数据库中,我需要一些ID自动增量,但我也需要该自动递增的ID作为另一个表的外键。有没有办法在相同的事务中恢复该数字以将值插入到第二个表中?使用自动增量与MySQL和需要检索该号码

如: 1)创建用户 2)检索由自动增量生成(例如ID号:AI:5) 3)插入值到名为医生表,需要通过检索到的数该用户,所有在同一交易...

我知道JSP有一些功能来恢复生成的ID,但不确定有关MySQL。 另一件事是,我不能只是发送一个查询来恢复最后生成的ID,因为例如如果10个账户在同一时间创建,我可能不会得到所需的数字。

+0

的[选择最后插入ID]可能重复(http://stackoverflow.com/questions/2266604/ select-last-insert-id) –

+0

另一个类似的重复:http://stackoverflow.com/questions/4567908/getting-last-insert-id-for-mysql-after-update –

+0

许多其他类似的问题被发现。最后一个插入标识取决于活动连接,因此如果尝试使用页面连接检索它,同时插入了其他几个插入标识,则仍然会得到正确的标识。 –

回答

3

对于纯MySQL的解决方案:

SELECT LAST_INSERT_ID(); 

对于Java方式:

ResultSet rs = stmt.getGeneratedKeys();