我有一個Java EE Web應用程序和一個SQL Server數據庫。 我打算稍後羣集我的數據庫。我自己的數據庫自動增量 - 避免重複密鑰
現在,我有兩個表: - 用戶 - 地點
但我不希望使用SQL Server的自動識別。 因爲羣集,我想生成我自己的ID。所以我創建了一個新表Parameter
。參數表有兩列:TableName
和LastId
。我的參數表存儲最後一個ID。當我添加一個新用戶,我的方法addUser這樣做:
- 查詢參數表的最後一個id並增加+1;
- 插入新用戶
- 更新最後一個ID +1。
它的工作。但它是一個網絡應用程序,所以1000人同時參與?也許他們中的一些人得到相同的最後一個ID。我該如何解決這個問題?我嘗試了同步,但它不工作。
你有什麼建議?是的,我必須避免自動增量。我知道用戶不得不等待。
好吧,真的唯一的辦法是同步或使用自動增量。 – 3kings
您可以使用GUID代替密鑰嗎?數據庫並不總是必須成爲密鑰的來源。要注意的是,在引用完整性方面,GUID並不總是那麼方便 - 與整數相比,您攜帶的是一個相當大的密鑰。 – stdunbar