表中字段的自动值(主键除外)

时间:2013-09-17 05:32:38

标签: php mysql database

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

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

不幸的是,我不能在表中有多个自动增量字段。此外,insert事件后触发器不起作用,因为它不能改变现在被操作的表。

那么如何完成我的任务?

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

1 个答案:

答案 0 :(得分: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。