Sequelize の増分値の一意性を確保する
P粉616111038
P粉616111038 2023-09-06 12:35:12
0
1
472

現在、Sequelize の increment() 関数を使用して、注文番号の値の列をインクリメントしています。例: .increment("order_no", { by: 1 });

場合によっては、リクエストが同じ 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 を生成できると思います。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート