在 insert into 语句中重置 auto_increment

Reset auto_increment in insert into statement

我有一张 table 发票: 编号 (auto_increment), 年, 发票编号, 日期。

我正在处理插入语句。

当 YEAR 发生变化时,NumInvoice 必须 reset.Something 检查前一年和当前年份,如果它们不同则重新设置。

到目前为止我有:

insert into invoice values (null, YEAR(CURDATE()),CONCAT(YEAR(CURDATE()),LAST_INSERT_ID()+1),CURRENT_TIMESTAMP());

有办法在同一个插入语句上重置 NumInvoice 吗?

提前致谢。

编写一个存储例程来查看 table 中的最新项目,与当前日期进行比较,然后决定 'next' 编号应该是多少。

不能涉及AUTO_INCREMENT,并且必须为每张新发票调用它。

或者您可以放弃这种生成发票编号的方式。

我得到了一些没有存储例程的解决方案。

INSERT INTO invoice (year,number,date)  SELECT  YEAR(CURDATE()),COUNT(*) + 1 ,CURDATE() FROM invoice WHERE year = YEAR(CURDATE());

在此处输入代码

任何关于存储例程的答案?

此致