Postgres子查询更新限制不符合限制

时间:2019-03-07 16:43:32

标签: postgresql sql-update subquery limit select-for-update

我最近将我的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的某些行为有变化吗?

0 个答案:

没有答案