Heim  >  Fragen und Antworten  >  Hauptteil

Stellen Sie die Einzigartigkeit des inkrementellen Werts von Sequelize sicher

Ich verwende derzeit Sequelizeincrement()函数来递增订单号值的列。例如:.increment("order_no", { by: 1 });

Gelegentlich kommt eine Anfrage innerhalb derselben Sekunde gleichzeitig bei meiner API an, was zu doppelten Bestellnummernwerten führt.

Gibt es eine Möglichkeit sicherzustellen, dass der inkrementelle Wert der Bestellnummer eindeutig ist? Muss ich increment in die Transaktion einschließen? Sollte ich nach dem Erstellen einer Bestellnummer stichprobenartig und regelmäßig prüfen, ob es Duplikate gibt? Ich bin mir nicht sicher, wie ich dieses Problem richtig lösen kann.

Laut der Dokumentation von Sequelize (https://sequelize.org/docs/v6/core-concepts/model-instances/#incrementing-and-decrementing-integer-values)

Um Parallelitätsprobleme zu vermeiden, bietet Sequelize Methoden zum Erhöhen und Dekrementieren von Instanzen, um den Wert der Instanz zu erhöhen/dekrementieren.

Obwohl es so aussieht, als ob diese Methode funktioniert, erhalten Sie bei der Verwendung dennoch doppelte Werte.

P粉616111038P粉616111038379 Tage vor403

Antworte allen(1)Ich werde antworten

  • P粉793532469

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

    我认为如果出现重复的订单ID,你可以尝试捕获错误并重试操作,生成一个新的订单ID。

    Antwort
    0
  • StornierenAntwort