[英]Can we add a non-primitive field to an existing class using javassist?
[英]Can we lock on non existing data in Oracle?
我們的用例與此類似:首先,我們需要檢查給定列是否存在活動記錄(非唯一),如果不存在則創建一個。 不幸的是,由於並發請求,重復插入已經發生。
示例架構/數據:
ID AccountNumber Status
1 12121321323 Y
2 97867585596 N
因此,如果表中不存在狀態為 Y 的 accountNumber,我們需要創建一個。 無論如何我們可以確保只有一條記錄存在(AccountNumber,Y 作為狀態)?
任何幫助表示贊賞。! 提前致謝。
您可以在表上創建唯一索引
create unique index only_one_active
on your_table( case when status = 'Y'
then accountNumber
else null
end );
這將允許您使用相同的帳號和狀態為 N 的任意多行,但每個帳號只有一行狀態為 Y。
您可以將此構造用於示例並在一個事務中執行(開始/結束;如果您從 oracle 腳本執行此操作):
merge into YOUR_TABLE
using DUAL
on (AccountNumber = #{inputAccountNumber})
when not matched then
insert (AccountNumber, Status)
values (12121321323, 'Y')
when matched then
update
set Status= 'N'
在這里查看更多
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.