我有这个查询来选择将自动增加列'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
的{{1}}值为223,依此类推......
答案 0 :(得分:0)
在MySQL中只有一种可扩展且可靠的方法。这是一个invoice
表,其中包含一个名为invoice_no
的自动增量列。当您需要新的唯一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/