当前位置: 首页 > 面试题库 >

PostgreSQL用随机值更新每一行

段干河
2023-03-14
问题内容

这与其他问题类似,但是在每个数据库的实现中似乎有所不同。我正在使用postgres,NEWID似乎不存在类似的东西。

这是我要工作的:

update foo set bar = (select floor(random() * 10) + 1);

我知道 为什么 不行,但是我似乎找不到适合Postgres的合适解决方案。我希望的值是bar1到10之间的随机数, 行不同。


问题答案:

我认为Postgres可能会优化子查询。这不行吗?

update foo
   set bar = floor(random() * 9 + 1);  -- from 1 to 10, inclusive


 类似资料:
  • 问题内容: 我有一列称为,我希望每一行都保存一个随机日期,该日期距当前时间为-2天。 我正在运行以下查询,但它使用相同的随机日期更新所有行。我希望每一行都是随机的,并且不一样。 任何想法将不胜感激。 问题答案: 使用表达式代替查询:

  • 问题内容: 我想更新表中列的前10个值。我有三栏;,和。要获得前10个值,我可以使用以下方法: 我想做的是根据的大小将值设置为一系列。这可以在PostgreSQL中完成吗? 问题答案: WITH cte AS ( SELECT id, row_number() OVER (ORDER BY account DESC NULLS LAST) AS rn FROM accountrecords ORD

  • 问题内容: 使用MS SQL Server,以下工作正常: 但是,使用PostgreSQL,以下操作将失败: 错误:重复的键值违反了唯一约束“ tbl_test_pkey”详细信息:键(testkey)=(2)已存在。 我需要在一个表中增加一列的每个值,这是复合唯一约束的一部分。如何在一份声明中做到这一点? 谢谢 ! 编辑:如果您想知道为什么这样做(至少对我而言),那么这是一个更完整的方案。 我有

  • 在我的Java项目中,我是usinq、JOOQ,我希望更新JSONB值。但我的建造失败了。 我写了一段代码: 我收到了下一条信息: 我犯错的地方?

  • 我有一个有4列的数据帧,第一列等于计数器,计数器的值为十六进制。 时间列是添加到原始数据帧中的新列。我想在x轴上绘制时间,在y轴上绘制频率、电阻和相位。

  • 每次我执行INSERT或UPSERT(ON CONFLICT UPDATE)时,每个表上的增量列都会增加之前的更新数量。 例如,如果我有这张表: 然后运行这些查询: 这是一个相当大的问题。我们运行的脚本每天处理100000个通知。这会在每一次插入之间产生大约10000行的间隙,所以我们可能从100行开始,但当我们达到1000行时,最后一行的主键ID值会自动增加到100000以上。 如果这种情况继续