Assurer le caractère unique de la valeur incrémentielle de Sequelize
P粉616111038
P粉616111038 2023-09-06 12:35:12
0
1
473

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.

P粉616111038
P粉616111038

répondre à tous(1)
P粉793532469

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal