【发布时间】:2015-09-10 16:40:34
【问题描述】:
嗨,我想知道你们推荐我做什么,每天生成一个随机数并避免碰撞。这个数字应该被插入到一个列中,这是我的架构:
id amount paymentmethod docnumber
1 12.00 cash 123456 (should be the same for all records in that day)
2 15.00 creditcard 123456
3 10.00 cash 123456
所以在 docnumber 列中,我试图实现的是每天生成一个唯一的数字,因为每天我都会清空表格,表格将填充 N 个值,所以接下来一天应该是这样的:
id amount paymentmethod docnumber
1 12.00 cash 789013 (should be the same for all records in that day)
2 15.00 creditcard 789013
所以今天我可以在表中有 10 条记录,但在列 docnumber 中将始终是相同的随机数,然后明天我将有示例 5 条记录,但列 docnumber 仍然会有另一个随机数,但在所有记录中,我怎样才能做到这一点?
非常感谢。
【问题讨论】:
-
你是说你每天都清空表,但你需要为每一天使用一个新值?
-
为什么不直接使用日期作为 YYYYMMDD 呢?
-
是的,因为在我使用的系统中,最终我会将所有记录保存在软件中,但会要求一个唯一的 docnum,所以今天我使用 1234 明天我不能使用相同的 docnum
-
@GordonLinoff 可能是最好的建议。另一种选择是创建一个日期表并在其中填充未来 x 年或其他任何日期的所有日期,并在该表中生成一个唯一的文档编号,您可以每天参考。
-
无论是在插入它们时还是作为更新语句。
标签: sql sql-server random