基本上每个记录我都想要date +递增整数的主键,并且整数每天都会重置。
这在SQL中是否可行?
修改:感谢您的回复。我会考虑在应用层执行此操作,但痛苦的部分是访问整数部分。另一种解决方案是在应用层计算date
,更新/检索整数,然后插入新记录。然后在一天结束时重置变量。
答案 0 :(得分:2)
“在SQL中这可能吗?”
是
我建议每个值有2行(一个用于Date,一个用于整数)。
您需要的是以下内容:插入触发器,将NOW()值添加到字段中。然后将整数连接到该日期。
另一个触发器在更改日期(您选择的小时)时重置Integer值
答案 1 :(得分:1)
如果希望数字单调增加,则必须实现锁定机制以防止并发插入。如果您只有一个会话插入数据,那么这很好,但多个会话很难。
这是一种非常糟糕的并发设计模式,使用常规序列生成的PK,单独的日期列以及与数字序列异步填充的另一列,您可以做得更好。