所以,我在這裏有一個同步問題;讓我們說明情況:Postgresql與多個用戶鎖定共享表
我有一個名爲Sendings
表中,由這些列:
id sending_object_id type destinatary
的id是自動序列ID PostgreSQL給每個表。發送object_id是一個自定義標識符,類型和destinatary ...對於這個特定的問題並不重要。
這是表會是什麼樣子數據爲例:
id sending_object_id type destinatary
1 1 1 A7
2 1 1 B1
3 2 2 A1
4 2 2 A2
5 3 1 B8
6 4 1 N1
相同的「object_id
」可以被髮送到多個destinataries,你可以看到。現在,當兩個不同的用戶使用兩臺不同的計算機嘗試插入發送的新的時,我的同步問題就出現了。
用戶A引入了新的發送信息和數據庫引擎使得SelectMax(sending_object_id)
以創建註冊表中新sending_object_id。
用戶B,同時,引入了一個新的發送,使得另一SelectMax(sending_object_id).
怎麼能插入新的數據時,在同一時間我避免重複sending_object_id
S'
在此先感謝。
什麼是更好的方式來鎖定表?而且,如果我編寫一個序列,是否只能爲第一個插入調用? (sending_object_id可以爲同一系列發送重複)。在此先感謝 –
我只是在批處理開始時在應用程序中調用nextval() - 忽略結果並對插入使用currval()。這樣他們都有相同的(新)價值。 –