由日期和自增整数组成的字符串主键

3

基本上,我希望每个记录都有一个日期加自增整数的主键,并且整数每天重置一次。

这在SQL中是否可行?

编辑:感谢回复。我考虑在应用程序层面进行操作,但令人痛苦的部分是访问整数部分。另一个解决方案是在应用程序层面计算出日期,更新/检索整数,然后插入新记录。然后在一天结束时重置变量。


你可能想要使用datenum的一种形式进行工作:https://dev59.com/1G025IYBdhLWcg3wZlHd;并且从datenum中去掉每天的时间,以便进行记录增量。 - jdl
可能吗?当然可以!好吗?当然不好!只需使用两列:(自动)身份和日期。如果你创建了奇异的野兽,它们会回来咬你。 - jean
2个回答

2

"这个在SQL中可行吗?"

是的

我建议每个值都有2行(一个用于日期,一个用于整数)。

您需要的是:插入触发器,在插入时将NOW()值添加到字段中。然后将整数连接到该日期。

另一个触发器在天数变化时(您选择的小时)重置整数值。


1
如果您希望数字单调递增,那么您必须实现锁定机制以防止并发插入。如果只有一个会话插入数据,那么这很好,但是对于多个会话来说就很困难。
这是一种非常糟糕的并发设计模式,最好使用常规序列生成的主键、一个单独的日期列和另一个异步填充数字系列的列。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接