Как ограничить количество строк, обновляемых в postgres - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь обновить записи в таблице клиентов, ограничивая их количеством записей n, но у меня возникает ошибка при использовании ключевых слов offset и limit.

Куда мне положить

offset 0 limit 1

в подзапросе оператора update, так как подзапрос выглядит так:

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

Когда я попытался выполнить оператор обновления выше, я получаю сообщение об ошибке:

ОШИБКА: синтаксическая ошибка в или около "смещения"

Примечание: предел не должен быть 1, это может быть любое число и то же самое верно для смещения

1 Ответ

0 голосов
/ 27 мая 2019

offset и limit работают со строками, а не со списком.

Вы можете преобразовать предложение in(), чтобы использовать подзапрос, который возвращает строку из каждого вашего ввода

обновление клиента

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