【问题标题】:Generate batch number in mysql?在mysql中生成批号?
【发布时间】:2014-01-12 07:43:02
【问题描述】:

我们有一个脚本应该像这样运行:

脚本将 n 行插入到数据库中,并在 batch 列中插入相同的唯一数字。

脚本将带有批次号的作业放入 AWS 队列。
AWS 工作人员进行一些处理并在我们的服务器上触发另一个脚本。
我们服务器上的脚本将来自 AWS 工作人员的响应插入到批处理中的所有行中。

除了创建批号之外,这一切都很简单。 由于多个用户可以同时创建一个批次,我们不能只获取最大批次号并加 1。

那么最理想的方法是什么?批号不一定是整数,尽管它可能很有用。

【问题讨论】:

  • 使用具有单个自动增量列的附加表来模拟序列?
  • 我会在time()中附加一些随机数,time() . rand(10,99),你也可以在用户id中附加一些运行数字。

标签: php mysql amazon-web-services unique


【解决方案1】:

创建一个名为batches 的新表,每批有一行。此表将有一个名为 batchid 的自动递增列。

您的脚本将首先在此表中插入一行。除了batchid,它还可以包含创建批次的时间戳、创建者以及其他相关信息。然后,该 ID 将在批处理的其余部分中使用。

【讨论】:

  • 除了 batchid,它还可以包含 wh... 的时间戳 - 这是我听到的第一个很好的论点,因为有一个单独的批处理表我正在考虑做一些事情,比如插入第一行获取插入 id,使用该 id 作为批号插入其余行,然后更新第一行以获得批号。
猜你喜欢
  • 1970-01-01
  • 2021-08-20
  • 2012-06-21
  • 2011-05-21
  • 1970-01-01
  • 2018-08-11
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
相关资源
最近更新 更多