-1

我在 MySQL(InnoDB)中有一个表“项目”。主键为 id(int 自增,从 1 开始)。另外,我在表 invoice_number 中有。

一段时间后,客户要求自动生成发票编号(从 2000 年开始)。

不幸的是,我在一个表中不能有多个自动增量字段。此外,触发器在插入事件之后不起作用,因为它现在无法更改正在操作的表。

那么如何完成我的任务呢?

注意:实际上,这是一个正在写入数据库的基于 Web 的应用程序

4

1 回答 1

1

如果你不能使用数据库机制来增加一个字段,你可以这样做

insert into projects (invoice_number)
select case when max(invoice_number) + 1 >= 2000 
            then max(invoice_number) + 1
            else 2000
       end
from projects

选择最大值并手动递增 1。

于 2013-09-17T05:35:28.350 回答