MySQL中非auto_increment列的原子增量

时间:2011-11-18 07:57:06

标签: mysql auto-increment atomic

我有一个有两列的表。一个是auto_increment说columnA而另一个是非auto_increment说columnB。我想在columnB中执行两种类型的插入操作:

  1. 插入一个常数(有意复制)
  2. 插入max(columnB)+ 1(这不得导致任何重复)
  3. 操作1很简单但是在操作2中可能存在重复,因为操作不是完全原子的。我打算使用以下SQL:

    插入表(columnB)从表

    中选择max(columnB)+1

    如果多个用户在同一时间点击上述SQL,则会导致重复。我想知道如何使语句完全原子化。

    还有一件事,如果你建议表锁定,那么由于表被锁定而存在延迟插入而不是返回错误?

1 个答案:

答案 0 :(得分:0)

如果需要,您可以编写一个自动递增B列的触发器。