J'utilise actuellement Sequelizeincrement()
函数来递增订单号值的列。例如:.increment("order_no", { by: 1 });
Parfois, une requête arrive simultanément à mon API dans la même seconde, ce qui entraîne des valeurs de numéro de commande en double.
Existe-t-il un moyen de garantir que la valeur incrémentielle du numéro de commande est unique ? Dois-je envelopper increment
dans la transaction ? Après avoir créé un numéro de commande, doit-on vérifier de manière aléatoire et régulière s'il y a des doublons ? Je ne suis pas sûr de la bonne façon de résoudre ce problème.
Selon la documentation de Sequelize (https://sequelize.org/docs/v6/core-concepts/model-instances/#incrementing-and-decrementing-integer-values)
Pour éviter les problèmes de concurrence, Sequelize fournit des méthodes d'incrémentation et de décrémentation d'instance pour incrémenter/décrémenter la valeur de l'instance.
Cependant, même si cette méthode semble fonctionner, vous obtenez toujours des valeurs en double lorsque vous l'utilisez.
Je pense que s'il y a un ID de commande en double, vous pouvez essayer de détecter l'erreur et réessayer l'opération, en générant un nouvel ID de commande.