如何每月重置数据库计数器



我有一个应用程序需要生成一个唯一标识符,该标识符是某些缩写,日期和4位数字的混合,可为每个新项目增加。棘手的部分是最后4位数字应每月重置。

作为一个例子,可以说我们有UID " SP-20121218-0001" ,最后4个数字" 0001" 将增加到一月,然后将一月创建的第一项应具有" SP-201301-0001"

有什么想法?

创建一个带有字段,月份,当前计数的表。编写一个存储过程,该过程选择当年和月的一行,如果不存在,则会创建并增加数字。

对我来说,这听起来像是存储功能的完美用例。

在postgresql中,您将通过具有序列,然后使用函数从序列中选择一个值,以与锻炼当前日期相结合,然后重置序列。

最好的方法是不要打扰重置序列,而要使用以日期补充的唯一数字。

一个可能的选项是基于数据库序列上的最后4个数字,然后具有单独的过程,该过程将在新月开始时重置该数据库序列。

最新更新