Я пытаюсь обновить записи в таблице клиентов, ограничив их числом n записей, но у меня возникает ошибка, когда я использую ключевые слова смещения и ограничения.
Куда мне положить
offset 0 limit 1
в подзапросе оператора обновления, поскольку подзапрос выглядит так:
update customer set name = 'sample name' where customer_id in (142, 143, 144, 145 offset 0 limit 1);
Когда я попытался выполнить оператор обновления выше, я получаю сообщение об ошибке:
ERROR: syntax error at or near "offset"
Note: limit does not have to be 1, it can be any number and same is true for offset
offset
и limit
работают со строками, а не со списком.
Вы можете преобразовать предложение in()
, чтобы использовать подзапрос, который возвращает строку из каждого вашего ввода.
обновить клиента
set name = 'sample name'
where customer_id in (select unnest(array[142, 143, 144, 145]) offset 0 limit 1);