[英]Locking Tables with postgres in JDBC
關於使用JDBC在postgres數據庫中鎖定表的快速問題。 我有一個表,我想為其添加一個新記錄,但是,為了對主鍵執行此操作,我使用遞增的整數值。
我希望能夠在Java中檢索此列的最大值,並將其存儲為變量,以便在添加新行時用作新的主鍵。
這給我一個小問題,因為這將被建模為多用戶系統,當2個位置請求相同的最大值時會發生什么? 在嘗試添加相同的主鍵時,這當然會產生問題。
我意識到我應該在桌面上使用EXCLUSIVE鎖來防止在獲取密鑰和添加新行時讀取或寫入。 但是,我似乎無法找到任何方法來處理JDBC中的表鎖定,只是標准事務。
psuedo代碼如下:
primaryKey = "SELECT MAX(id) FROM table1;";
primary key++;
//id retrieved again from 2nd source
"INSERT INTO table1 (primaryKey, value 1, value 2);"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.