搜索

首页  >  问答  >  正文

确保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 天前470

全部回复(1)我来回复

  • P粉793532469

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

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

    回复
    0
  • 取消回复