[英]Insert Unique PRNG into Db column
是否可以在表中的每个现有记录旁边插入一个唯一的伪随机数?
就像是:
UPDATE Products P1
SET RandomId = Random()
WHERE NOT EXISTS (
SELECT Id
FROM Products P2
WHERE RandomId = [The same random as above]
)
(是的,我知道这只会跳过冲突,无法解决冲突)
我知道我可以通过代码甚至在多行语句中迭代地执行此操作-但是是否有单个命令可以为我执行此操作?
注意:这个问题是我个人的看法,因此Microsoft SQL Server和MySQL都对此表示赞赏。 谢谢。
尝试
SELECT NEWID()
将其加载到变量中,因为您必须多次使用相同的值。
切勿对此类操作使用随机数。 您需要使用序列号。 如果您使用随机,则希望像彩票一样随机:)
如果要使用唯一随机数,则需要执行以下操作:
select @max := max( RandomId ) from Products;
update Products set RandomId = @max := @max + Rand() + 1;
或者您可以创建一个循环,该循环可能不会以宇宙年龄的3倍结束:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.