用随机数更新表

xCl*_*dx8 2 sql postgresql-9.5

我需要用随机数更新我的表,这是我的表:

chr pos ref alt id_disease
chr1 123 A   A     NULL
chr2 456 A   T     NULL
Run Code Online (Sandbox Code Playgroud)

我想用 1 到 30000079 之间的随机数更新疾病列。

要获得这个:

chr pos ref alt id_disease
chr1 123 A   A     5024
chr2 456 A   T     300045
Run Code Online (Sandbox Code Playgroud)

有一些随机函数吗?

Tim*_*sen 5

使用RANDOM()

UPDATE yourTable
SET id_disease = FLOOR(RANDOM() * 30000079) + 1
Run Code Online (Sandbox Code Playgroud)

解释

Postgres 的RANDOM()函数返回 范围内的数字0.0 <= x < 1.0。在上面的查询中,这意味着当returns时会出现最小值,给出值。当返回类似 的值会出现最高值,这会给出略低于 的值。该函数会将其降低到,但随后我们对其进行添加,使其恢复到最高值 。RANDOM()01RANDOM()0.99999930000079FLOOR30000078130000079