在SQL数据库中每天创建一系列序列号的好方法是什么?
某些数据库系统中整数列的自动递增功能。
我正在创建/记录交易,交易由'date,serial no'对标识。
答案 0 :(得分:1)
这取决于您拥有的数据库类型。如果您可以访问全局变量或生成器,则只需每天重置它并使用它来为您的序列号列添加种子。如果没有,您可以将值存储在一个表格中并查找它以使您的列播种,再次每天重置它。
如有必要,请不要忘记手动增加种子。 (生成器是一种特殊的全局变量,如果设置为可以自动递增。其他变量,当然表中的记录也不会。)
要重置该值,只需在insert上设置一个触发器,检查COUNT(DATE = today)
是否为0.如果是,请重置该值。
答案 1 :(得分:1)
仅为此目的的特定表怎么样?
create table AvailableSerialNumbers (
AvailableOn datetime primarykey,
NextAvailableNumber int
)
你必须提前填写这个,但这很简单(确保这是自动完成而不是手动完成)。
请注意,如果您同时创建了大量序列号记录,则创建逻辑将在更新AvailbleSerialNumbers记录时遇到瓶颈。解决该问题的最简单方法是每天定义多个AvailableSerialNumbers记录(比如100个)并随机选择1进行更新。如果使用这种方法而不是“NextAvailableNumber”字段,它应该是from / to范围。当范围达到0时,删除范围记录。
答案 2 :(得分:0)
最好的方法是使用日期作为数字的一部分,例如今天有080216001到080216999。你有不连续的数字吗?