[Oracle] update 使用自增值

oracle有一個很方便的trigger,可以取得唯一的自增值

寫法大概如下 Select AutoNumber.nextval From dual

系統就會自動回傳一個auto number,當然需要先寫trigger

附上Stackoverflow的範例




我今天要處理的是有一個欄位希望能使用這個number去更新,原本的sql如下

update table1 
set column1 = (Select autonumber.nextnvl from dual)
where nvl(column1,0) = 0

但這樣會失敗,就去找資料,發現要這樣寫才行

update table1 
set column1 = autonumber.nextnvl
where nvl(column1,0) = 0

這樣就可以將沒有資料的欄位,自動補上自增值嚕!

留言