我使用这个查询来选择将自动递增列'invoice_no'的行
SELECT *FROM oc_order WHERE order_status_id >= 0
GROUP BY order_id;具有order_id #1276的行有'invoice_no‘值222
我希望自动递增,以便下一个选定的行id WHERE order_status_id >= 0将具有'invoice_no'值223,依此类推……
发布于 2016-02-01 20:25:27
在MySQL中,只有一种可伸缩且健壮的方法可以做到这一点。这是一个包含一个名为invoice_no的自动递增列的invoice表。当您需要一个新的唯一invoice_no值时,请执行以下操作:
INSERT INTO invoice (col, col) VALUES (whatever, whatelse)
SET @new_invoice_no := LAST_INSERT_ID()
UPDATE oc_order SET invoice_no = @new_invoice_no (or whatever)如果您尝试使用SELECT MAX(invoice_no)或类似的方法来执行此操作,那么当数据库变得繁忙时,您将开始获得大量重复的值。
这是关于这个主题的一篇文章。http://www.plumislandmedia.net/mysql/unique-numbers-oracle-mysql/
https://stackoverflow.com/questions/35129895
复制相似问题