4
只是使用JDBC在postgres數據庫中鎖定表格的快速問題。我有一張我要添加新記錄的表,但是,要爲主鍵執行此操作,我使用遞增的整數值。在JDBC中使用postgres鎖定表格
我希望能夠在Java中檢索此列的最大值並將其存儲爲一個變量,以便在添加新行時用作新的主鍵。
這給我一個小問題,因爲這將被建模爲多用戶系統,當2個位置請求相同的最大值時會發生什麼?這當然會在嘗試添加相同的主鍵時產生問題。
我意識到我應該使用表上的EXCLUSIVE鎖來防止在讀取或寫入的同時獲取密鑰並添加新行。但是,我似乎無法找到任何方法來處理JDBC中的表鎖定,只是標準事務。
僞代碼,例如:
primaryKey = "SELECT MAX(id) FROM table1;";
primary key++;
//id retrieved again from 2nd source
"INSERT INTO table1 (primaryKey, value 1, value 2);"