Mysql(数据库设计) - 存储从每个财政年度1个开始的发票,即4月1日

时间:2014-05-02 12:39:37

标签: mysql sql database

create table invoices(
   year           int not null
  ,invoice_number int not null auto_increment
  ,primary key(year, invoice_number)
);

insert into invoices(year) values(2009);
insert into invoices(year) values(2009);
insert into invoices(year) values(2009);

insert into invoices(year) values(2010);
insert into invoices(year) values(2010);
insert into invoices(year) values(2010);

select * 
  from invoices;

+------+----------------+
| year | invoice_number |
+------+----------------+
| 2009 |              1 |
| 2009 |              2 |
| 2009 |              3 |
| 2010 |              1 |
| 2010 |              2 |
| 2010 |              3 |
| 2011 |              1 |

发票应自每年4月1日起自动生成 我创建了这样的表,但它将从1月1日开始生成,我想从4月1日开始

1 个答案:

答案 0 :(得分:1)

您应该存储实际日历日期和财务年度。可以使用触发器插入/更新财政年度(" 2009"从2009-04-01到2010-04-01)(编辑:AFTER错误,BEFORE对于auto_increment非常重要){{1} } / BEFORE INSERT。我不知道你如何对索引的次要部分进行auto_increment,但如果它适用于2009年和#34;它也应该适用于2009财政年度。