我必須寫一個查詢,其中我需要爲特定記錄分配一個ID
(唯一鍵),這個記錄沒有被使用/沒有被生成/在數據庫中不存在。如何獲得表中第一個未使用的ID?
總之,我需要爲特定記錄生成一個id
並在打印屏幕上顯示它。
E.摹:
ID Name 1 abc 2 def 5 ghi
那麼,事情是,它應該返回ID=3
作爲未還產生下一個即時的,而這一代id
後,我會存儲這些數據回到數據庫表。
這不是一個HW:我正在做一個項目,我有一個需要寫這個查詢的需求,所以我需要一些幫助來實現這個。
所以請指導我如何使這個查詢,或如何實現這一點。
謝謝。
我不能夠添加註釋,,所以這就是爲什麼我在這裏寫我的意見.. 我使用MySQL作爲數據庫..
我的步驟是這樣的: -
1)從數據庫表中檢索未被使用的ID。
2)因爲他們是沒有的。的用戶(基於網站的項目),所以我想不會發生併發,所以如果一個用戶生成一個ID,那麼它應該鎖定數據庫,直到同一個用戶接收到該ID並存儲該ID的記錄。之後,其他用戶可以檢索ID(無論哪一個不存在)。(主要要求)..
我如何在MySQL中完成所有這些事情,我想也是Quassnoi的答案值得,但它不是在MySQL中工作..所以PLZ解釋一下關於查詢,因爲它是我的新...並將這個查詢工作在MySQL ..
您在項目中使用了哪些關係數據庫? – Quassnoi 2009-05-25 16:23:51
這裏要小心併發性。如果您有多個用戶,運行Quassnoi查詢和將結果存儲在數據庫中的時間間隔可能會導致重複的ID。爲什麼不讓RDBMS管理你的ID列? – 2009-05-25 16:43:09
正如DDaviesBrackett寫道,如果這不是家庭作業,那麼它會遭受嚴重的現實世界問題:兩個進程可能會運行查詢,並獲得他們的答案,然後每個嘗試插入重複記錄。如果這只是爲了回答這個問題:有沒有差距?那是不同的。那麼任何人都會在乎的就很有趣。 – Yishai 2009-05-25 16:54:45