我在MySQL(InnoDB)中有一个表“projects”。主键是id(int自动增量,从1开始)。另外,我在表invoice_number中有。
一段时间后,客户要求自动生成发票编号(从2000年开始)。
不幸的是,我不能在表中有多个自动增量字段。此外,insert事件后触发器不起作用,因为它不能改变现在被操作的表。
那么如何完成我的任务?
注意:实际上,这是一个写入数据库的基于Web的应用程序
答案 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。