在資料庫查到一堆滿足條件的資料,比如說100條,我每次取一條,怎么保證取出的資料是唯一的,在oracle中實作
uj5u.com熱心網友回復:
可以把這100條方到一個臨時表,取出過的資料用一個欄位標記下,下次取得時候過濾!簡單粗暴!uj5u.com熱心網友回復:
用distinct放到游標里,一個一個取不就可以了uj5u.com熱心網友回復:
存盤程序處理資料,直接用游標。應用程式處理資料,先取到程式中,就可以了;
uj5u.com熱心網友回復:
沒太明白需求,是樓上說的那意思嗎?uj5u.com熱心網友回復:
我講的更詳細一下吧,需求是這樣的,用戶來營業廳想辦手機號,資料庫比如說有100個滿足條件的手機號,隨機給客戶分一個,在這個號碼占用之前,其他營業員也在從資料庫撈號碼,就有幾率取到同一個號碼,怎么避免或者盡可能的減少這個概率,不能另建表,只能根據查詢結果來操作uj5u.com熱心網友回復:
你不重新說都還沒明白uj5u.com熱心網友回復:
直接在查詢后面增加for update鎖定當條查詢,別的就被人查詢你拿出來的這條的,直到被釋放uj5u.com熱心網友回復:
把每次隨機取出的資料放到set集合里,當再次取資料時就拿新取的資料與set集合里的資料相比較,如果不一樣即可uj5u.com熱心網友回復:
比較低級的辦法,是在某處,存盤已經抽取的內容。比較高級的辦法,就設定某個規則,按照規則抽取資料。
uj5u.com熱心網友回復:
按上面寫的,查詢的時候鎖表就可以避免這種情況,不過可能有人要等待轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/43204.html
標籤:開發
