gpt4 book ai didi

postgresql - 在 postgres 中使用限制和偏移量更新表

转载 作者:行者123 更新时间:2023-11-29 11:17:34 24 4
gpt4 key购买 nike

您好,是否可以使用来自另一个具有限制和偏移量的表的值来更新表?

例如表 t_device 有 600 行t_object 有 100 行

我想更新一列,但只有前 100 行与子查询有偏移

update t_device set id_object = 
(select id_object from t_object limit 100) limit 100 offset 0;

update t_device set id_object =
(select id_object from t_object limit 100) limit 100 offset 100;

这可能吗?我找不到从 t_object 修改 t_device 中的值的解决方案

我正在使用 postgres 8.4

最佳答案

  • 如果您只是将 id_object 设置为 id_object,那条 UPDATE 语句看起来用处不大,尽管是以半随机的顺序。
  • 如果 t_device 表 UPDATE 语句中没有唯一的 WHERE 谓词,则无法保证只会更新 100 行,这就是我假设外部 LIMIT 的意图。
  • 您应该在子查询中有一个 ORDER BY 以确保您不会在行中出现重叠。

类似下面的内容可能对您有用。

UPDATE t_device set id_object = t.id_object
FROM (select id_object from t_object order by id_object limit 100) t
WHERE t.id_object = t_device.id_object;

关于postgresql - 在 postgres 中使用限制和偏移量更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17552428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com