如何使用现有值在MySQL上生成增量唯一ID?

时间:2017-12-03 18:05:36

标签: mysql unique generator

我有一个包含3行数据的表:

enter image description here

“id”是主键和自动增量。 order_no不是唯一索引,因为可能有许多company_ids具有相同的order_no。

我可以使用此查询生成并向用户显示下一个order_no:

select LPAD(count(order_no)+1, 4, '0')  from customers_orders where company_id=28

这给了我“0004”。没关系。但是用户也可以手动输入id,数据就像这样:

enter image description here

现在它不以0001开头,生成查询给我“0003”。但我已经有了“0003”。查询应该像“0005”一样返回。

如果我得到最新的order_no并将其添加1(例如max(order_no)+1),它将无效。因为数据也可以是这样的:

enter image description here

如果数据是这样的话;查询必须生成“0003”。

我想我可以用PHP中的while循环来实现这一点,但是如果可能的话我想用MySQL做这件事。谢谢。

0 个答案:

没有答案