[SQL ] Insert當下select出當筆資料

作者: fire1017 (鳥鳴啾啾)   2017-04-22 19:18:35
資料庫名稱:Oracle
資料庫版本:11g
內容/問題描述:
目前遇到一個問題,我想在Insert一筆資料時,
同時select出自己的PK,好讓自己能再透過程式補上BLOB資料,
(會這麼麻煩是因為我的BLOB是一張QRCode,有獨特性)
但問題在我的資料PK是透過sequence產生的,
我無法預先知道下一筆PK會是長怎樣(可能中間出狀況就跳號),
導致我再進行select時無法用insert進的PK來作為條件,
我目前想到的作法是,在table增加一個時間欄位紀錄Insert當下的時間,
再透過where最新時間的方式來取回原來那筆資料,
但想想覺得有點不夠俐落,而且不確定是否摻雜其他風險在
想請問版上的高手們是否有更好的解決辦法?
先謝謝各位解答!
作者: aaa7513231 (渾沌與秩序)   2017-04-22 22:28:00
我以前PK都是自己生一個UUID來新增,就不需要回傳PK了
作者: iFEELing (ing)   2017-04-23 01:37:00
那你程式就自己取Sequence拿到號碼再塞資料進去??
作者: aaa7513231 (渾沌與秩序)   2017-04-25 17:24:00
uuid只是產生一個不會重複的代碼當pk而已
作者: paul0407 (紅塵過客號,或以 guest )   2017-06-13 18:27:00
之前有個類似需求我是用Select ... for update來解取得最大值+1後,就是您Insert的PK值

Links booklink

Contact Us: admin [ a t ] ucptt.com