Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在 MySQL(InnoDB)中有一个表“项目”。主键为 id(int 自增,从 1 开始)。另外,我在表 invoice_number 中有。
一段时间后,客户要求自动生成发票编号(从 2000 年开始)。
不幸的是,我在一个表中不能有多个自动增量字段。此外,触发器在插入事件之后不起作用,因为它现在无法更改正在操作的表。
那么如何完成我的任务呢?
注意:实际上,这是一个正在写入数据库的基于 Web 的应用程序
如果你不能使用数据库机制来增加一个字段,你可以这样做
insert into projects (invoice_number) select case when max(invoice_number) + 1 >= 2000 then max(invoice_number) + 1 else 2000 end from projects
选择最大值并手动递增 1。