【问题标题】:multiple id sequences in a mysql tablemysql表中的多个id序列
【发布时间】:2026-02-01 23:15:03
【问题描述】:

我有一个会计应用程序,该应用程序具有称为公司资料的功能,而该功能又具有一个名为“InvoicePrefix”的字段。因此,如果我有一家发票前缀为 MY 的公司,则所有发票都应生成为 MY/2013-2014/001 等等... 同样,如果我的 invoicePrefix 为 ME,则发票应从 ME/2013-2014/001 开始,依此类推。

现在我在 mysql 中有一个所有公司的通用发票表,因为我不知道以前的公司数量。

我需要的是每个 invoicePrefix 从 1 开始的发票序列。目前我正在生成发票号码(最后出现 -MY/2013-2014/001)。这有一个问题,即每个公司的顺序都会中断。

那么我怎样才能用一些智能的 mysql 查询语句来完成呢?

【问题讨论】:

    标签: php jquery mysql codeigniter backbone.js


    【解决方案1】:

    维护一个种子表,记录每个公司的当前指针,例如

    Company | Year      | Seed
    MY      | 2013-2014 |  1
    ME      | 2013-2014 |  20
    ME      | 2012-2013 |  1120
    

    创建一个用于在您的表中插入记录的过程首先检查该特定年份的表中是否存在公司记录,如果没有插入该记录并使用1启动种子计数器,否则获取最新的种子值并更新计数器和获得值后,相应地在表中插入记录。

    【讨论】:

    • 我有自动增量列 ID,它为发票编号提供新值...
    • 所有公司都会使用该 ID?要为您的表生成单独的 id,您可以遵循这种方法。你理解有什么问题吗?