我有一张表格发票: id(自动递增), 年, 发票号, 日期。
我正在处理插入语句。
当年份更改时,NumInvoice 必须重置。比如检查上一年和当前年份,如果不同则重置。
到目前为止我已经:
insert into invoice values (null, YEAR(CURDATE()),CONCAT(YEAR(CURDATE()),LAST_INSERT_ID()+1),CURRENT_TIMESTAMP());
有办法在同一个插入语句上重置 NumInvoice 吗?
提前致谢。
编写一个存储例程来查看表中的最新项目,与当前日期进行比较,然后决定“下一个”数字应该是什么。
它不能涉及
AUTO_INCREMENT
,并且每张新发票都必须调用。
或者您可以放弃这种生成发票号码的方式。
我得到了一些没有存储例程的解决方案。
INSERT INTO invoice (year,number,date) SELECT YEAR(CURDATE()),COUNT(*) + 1 ,CURDATE() FROM invoice WHERE year = YEAR(CURDATE());
有什么答案可以用存储的例程来做到这一点吗?
问候