在 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());
在此处输入代码
任何关于存储例程的答案?
此致
我有一张 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());
在此处输入代码
任何关于存储例程的答案?
此致