如何使用Uniqe产品代码自动化数据库ID,然后将其重置为1时,将其重置为1?

发布于 2025-01-23 03:58:31 字数 520 浏览 0 评论 0原文

我目前正在使用Java Spring Boot。我正在使用JPA存储库和PostgreSQL作为数据库,

我的企业所有者希望我创建包含

PRODUCT_CODE-YEAR-MONTH-INCREMENT_NUMBER
  • 增量编号的交易ID,其中包含8个长度编号

示例:0000001,0000011,0000201

example : 48-2022-04-0000001
48-2022-04-0000001
48-2022-04-0000002
48-2022-04-0000003
-----> 48-2022-04-0000203

下个月时,增量编号将重置为0000001。

将是:

48-2022-05-0000001

最好的方法是什么?

另外,如果有任何查询可以选择给定月和年份的最后一个数据?

请帮助我,我只想提前说谢谢

I am currently working with java spring boot. I am using JPA Repository and postgresql as database

My business owner want me to create id of transaction that contain

PRODUCT_CODE-YEAR-MONTH-INCREMENT_NUMBER
  • increment number contain 8 length number

Example : 0000001, 0000011, 0000201

example : 48-2022-04-0000001
48-2022-04-0000001
48-2022-04-0000002
48-2022-04-0000003
-----> 48-2022-04-0000203

The increment number will be reset to be 0000001 when next month.

Will be:

48-2022-05-0000001

What the best way to do this?

Also if there is any query to select last data on given month and year?

Please help me, I just want to say thank you in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

楠木可依 2025-01-30 03:58:31

多个序列,每年一个序列,

您没有一个序列。您有很多序列,每个月一个。

使用Postgres命令创建序列以创建每个月命名的序列。我建议使用一个序列名称,其中包括标准 iso 8601 格式,yyyyy-------毫米。

在java中,使用 YearMonth 表示特定的月份。

你说:

下个月时,增量编号将重置为0000001

否时,增量编号将重置为0000001,不要考虑重置。一方面,在某些情况下,您需要在以前或将来的几个月内创建交易。重置将排除这一点。

因此,请保留多个序列,每月一个。

Multiple sequences, one per year-month

You don’t have one sequence. You have many sequences, one for each month.

Use Postgres command CREATE SEQUENCE to create a sequence named for each month. I suggest using a sequence name that includes the year-month in standard ISO 8601 format, YYYY-MM.

In Java, use the YearMonth to represent a particular month.

You said:

the increment number will be reset to be 0000001 when next month

No, don’t think in terms of resetting. For one thing, there may be exceptional circumstances where you need to create transactions for previous or future months. Resetting would preclude that.

So keep multiple sequences, one per month.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文