首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用选定行中的现有值自动递增列

使用选定行中的现有值自动递增列
EN

Stack Overflow用户
提问于 2016-02-01 19:54:14
回答 1查看 20关注 0票数 1

我使用这个查询来选择将自动递增列'invoice_no'的行

代码语言:javascript
复制
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,依此类推……

EN

回答 1

Stack Overflow用户

发布于 2016-02-01 20:25:27

在MySQL中,只有一种可伸缩且健壮的方法可以做到这一点。这是一个包含一个名为invoice_no的自动递增列的invoice表。当您需要一个新的唯一invoice_no值时,请执行以下操作:

代码语言:javascript
复制
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/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35129895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档