我如何限制Postgres中更新的行数

时间:2019-05-27 11:23:24

标签: postgresql sql-update subquery limit offset

我试图通过将它们限制为n个记录来更新客户表中的记录,但是当我使用offset和limit关键字时出现错误。

我放在哪里

offset 0 limit 1

在更新语句子查询中,因为子查询类似于:

update customer set name = 'sample name' where customer_id in (142, 143, 144, 145 offset 0 limit 1);

当我尝试执行上述更新语句时,出现错误:

  

错误:“偏移”处或附近的语法错误

     

注意:限制不必为1,它可以是任何数字,并且偏移量也是如此

1 个答案:

答案 0 :(得分:0)

offsetlimit用于行,而不是列表。

您可以转换in()子句以使用子查询,该子查询从每个输入中返回一行

更新客户

set name = 'sample name' 
where customer_id in (select unnest(array[142, 143, 144, 145]) offset 0 limit 1);