gpt4 book ai didi

sql - 永远更新查询

转载 作者:行者123 更新时间:2023-11-29 12:46:57 25 4
gpt4 key购买 nike

我有一个表 my_obj,其中包含两个字段 value_a varchar(5)value_b varchar(5)

事实上,这两个值相差不大,可以归为一对。充其量给出的最大数量 < 100 对。相反,我在 my_obj 中有几百万条记录。

所有干扰 value_avalue_b 的查询都需要很长时间。所以我决定为所有可能的对创建表对,字段为 value_avalue_b。因此,我在表 my_obj 中添加了一个字段 id_pair。

我已经用它的所有对填充了表对,没问题。所以,现在,我想使用以下命令相应地更新表 my_obj:

update my_obj
set id_pair = p.id
from my_obj as o
inner join pair as p on p.value_a = o.value_a and p.value_b = o.value_b;

虽然查询启动了很长时间,但我运行了 select count(*) from my_obj where id_pair > 0; 并返回了 0

所以我的更新查询有问题。编辑/注意:plpgsql 函数是一个事务单元,在事务结束时执行提交,所以完全正常我在表中看到没有修改因为我中断了这个功能。

我用 my_obj 的主键上的条件更改了更新查询,以便只对一条记录执行一次 update

update my_obj
set id_pair = p.id
from my_obj as o
inner join pair as p on p.value_a = o.value_a and p.value_b = o.value_b
where o.id = 1234567; -- 1234567 being the key of an existing record

令人惊讶的是,当我启动应该更新 一条记录的查询时,它似乎需要永远

我做错了什么?

最佳答案

这对您有何帮助?

update my_obj o
set id_pair = p.id
from pair p
where p.value_a = o.value_a and
p.value_b = o.value_b and
o.id = 1234567;

关于sql - 永远更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15670891/

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