自动递增非唯一列

时间:2019-02-20 13:42:50

标签: mysql auto-increment

我正在尝试为网上商店的预订创建队列系统。有时候,我们的订单多于库存,需要几次发货到仓库,而我正试图组织起来,以便那些先下订单的人先得到他们的产品。

当客户想要通过更改订单(例如在订单中添加一些东西)来出现问题时,就会出现问题。为了进行预订,我们随后将第一笔订单返回到我们的系统,该系统创建另一个订单,然后最终创建一个包含所有内容的新订单。这导致该客户在我们当前系统中按创建日期去的队列列表中的最后一位。

我想做的是将原始队列点复制到新订单上,而不会弄乱自动增量。这也意味着将有三个具有相同编号的订单(原始订单,退货订单和新订单)。

id  | order   | queue | ordercomment
1   | 1001    | 1     | new order
2   | 1002    | 2     | new order
3   | 1003    | 3     | new order
4   | 1004    | 1     | return order 1001
5   | 1005    | 1     | corrected order 1001
6   | 1006    | 4     | new order

有什么方法可以解决这个问题,而无需制定手动递增的解决方案,该解决方案可以在下订单时检查当前的最高号码?

1 个答案:

答案 0 :(得分:0)

  

我们按创建日期去的地方

但是您的数据没有这样的日期。您要依靠递增整数来确定排序顺序,这就是您遇到麻烦的地方。

如果要按创建日期排序,请存储创建订单的日期。每当您修改,追加或以其他方式重新创建订单时,您仍然可以保留原始订单日期。也许有两列,当前订单的日期和原始订单的日期。 (对于大多数订单,这两个值是相同的,但这没什么问题。)

那么您的优先顺序就是原始订单的日期。

基本上,请勿尝试使用整数作为时间戳。使用时间戳记。