2011-10-01 46 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();