我有一张桌子发票: id(auto_increment), 年, invoiceNum, 日期。
我正在处理一个Insert语句。
当YEAR更改时,NumInvoice必须重置。检查前一年和当前的内容,如果它们不同则重置它。
直到现在我有:
insert into invoice values (null, YEAR(CURDATE()),CONCAT(YEAR(CURDATE()),LAST_INSERT_ID()+1),CURRENT_TIMESTAMP());
有一种方法可以在同一个插入语句中重置NumInvoice吗?
提前致谢。
答案 0 :(得分:0)
编写一个存储的例程来查看表中的最新项目,与当前日期进行比较,然后确定“下一个”数字应该是什么。
无法涉及AUTO_INCREMENT
,并且每个新发票都必须 。
或者您可以放弃生成发票号码的方式。
答案 1 :(得分:0)
我得到了一些没有存储例程的解决方案。
INSERT INTO invoice (year,number,date) SELECT YEAR(CURDATE()),COUNT(*) + 1 ,CURDATE() FROM invoice WHERE year = YEAR(CURDATE());
在这里输入代码
对存储的例程做任何回答吗?
此致