確保Sequelize的增量值唯一性
P粉616111038
P粉616111038 2023-09-06 12:35:12
0
1
467

我目前使用Sequelize的increment()函數來遞增訂單號碼值的欄位。例如:.increment("order_no", { by: 1 });

#偶爾會有一個請求在同一秒鐘內同時到達我的API,導致重複的訂單號碼值出現。

有沒有辦法可以確保訂單號碼的遞增值是唯一的?我需要在事務中包裝increment嗎?在建立訂單號碼後,是否應該隨機定時檢查是否有重複?不確定解決這個問題的正確方法。

根據Sequelize的文檔(https://sequelize.org/docs/v6/core-concepts/model-instances/#incrementing-and-decrementing-integer-values)

為了避免並發問題,Sequelize提供了遞增和遞減實例方法來遞增/遞減實例的值。

然而,儘管看起來這個方法有效,但在使用時仍然會得到重複的值。

P粉616111038
P粉616111038

全部回覆(1)
P粉793532469

我認為如果出現重複的訂單ID,你可以嘗試捕獲錯誤並重試操作,產生一個新的訂單ID。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板