搜尋

首頁  >  問答  >  主體

確保Sequelize的增量值唯一性

我目前使用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粉616111038P粉616111038450 天前469

全部回覆(1)我來回復

  • P粉793532469

    P粉7935324692023-09-07 11:34:14

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

    回覆
    0
  • 取消回覆