我有一个发票系统,它运行在一个sql数据库上。每次我创建一个新发票,发票号就会增加1。所以发票号是5000,下一个是5001,然后是5002,以此类推。我希望下一个发票号增加一个不同的数字,比如说15。因此,发票编号依次为5000、5015、5030等。有没有可能在phpmyadmin中修改一些东西来实现这一点。短暂性脑缺血
rks48beu1#
尝试这样做,请注意这是全局的,而不仅仅是一个表。如果您只想在一个表上发生这种情况,请创建一个存储过程来设置ID,而不是自动递增。
SET @@auto_increment_increment=2; SET @@auto_increment_offset=2;
文件:https://dev.mysql.com/doc/refman/8.0/en/replication-options-source.html#sysvar_auto_increment_increment您也可以只使用一个子查询来决定发票号应该是什么,而不使其自动递增。(这可能是不可能的,在你的情况下,在这一点上我的顶部例子是唯一的方法去)但如果你可以编辑软件,你只需要选择存在的最高发票,然后再加上+2-然后将其存储到您提供的列中。
55ooxyrt2#
您可以使用两个数据行来执行此作业。一个ID具有一般自动递增,另一个InvoiceNumber具有预设值(ID * 15):
ID
InvoiceNumber
ALTER TABLE `definitions` ADD COLUMN `InvoiceNumber` INT NOT NULL DEFAULT (ID * 15) AFTER `DisplayOrder`;
rekjcdws3#
我知道您可以修改mySQL中的步骤,但这是一个全局更改,将影响所有表。我建议您保留数据不变,并使用视图将值乘以15。显然,您将用包含真实的信息、日期、客户等的多个列替换描述列。第一个问题
3条答案
按热度按时间rks48beu1#
尝试这样做,请注意这是全局的,而不仅仅是一个表。如果您只想在一个表上发生这种情况,请创建一个存储过程来设置ID,而不是自动递增。
文件:https://dev.mysql.com/doc/refman/8.0/en/replication-options-source.html#sysvar_auto_increment_increment
您也可以只使用一个子查询来决定发票号应该是什么,而不使其自动递增。(这可能是不可能的,在你的情况下,在这一点上我的顶部例子是唯一的方法去)但如果你可以编辑软件,你只需要选择存在的最高发票,然后再加上+2-然后将其存储到您提供的列中。
55ooxyrt2#
您可以使用两个数据行来执行此作业。一个
ID
具有一般自动递增,另一个InvoiceNumber
具有预设值(ID * 15):rekjcdws3#
我知道您可以修改mySQL中的步骤,但这是一个全局更改,将影响所有表。我建议您保留数据不变,并使用视图将值乘以15。
显然,您将用包含真实的信息、日期、客户等的多个列替换描述列。
第一个问题