我最近将我的postgres数据库从9.5.4升级到10.7,并注意到现有查询有些奇怪的行为。
修剪后的版本如下:
update
mytable
set
job_id = 6
where
id in (
select * from
(
select id from
mytable
where job_id is null
limit 2
) x for update)
and job_id is null
我希望将行数更新为等于2,但是相反,它正在更新与子查询匹配的所有记录而没有限制。如果删除for update
语句或匹配的job_id is null
语句,则更新的记录等于预期的2。在我们更新此查询之前,将更新正确的行数。
10.x的某些行为有变化吗?