Предложение LIMIT не применяется в подзапросе UPDATE. - PullRequest
0 голосов
/ 25 октября 2018

Я вижу странную проблему с момента обновления до postgres 10 с 9.4.Этот параметризованный запрос на обновление раньше работал надежно, но теперь он регулярно (но не всегда) не выполняет условие LIMIT

UPDATE tablename SET someValue = ? WHERE myKey IN (
  SELECT myKey 
  FROM tablename 
  WHERE status = 'good' 
  ORDER BY timestamp 
  ASC LIMIT ? FOR UPDATE
)

1 Ответ

0 голосов
/ 25 октября 2018

попробуйте это:

ВЫБРАТЬ ... ДЛЯ ПЕРЕХОДА ОБНОВЛЕНИЯ ЗАБЛОКИРОВАНО

предел?для обновления пропущена заблокированная функция, добавленная в 9.5.с этой концепцией каждый поток просто видит записи, которые не заблокированы для обновления другими потоками, и поэтому никакой гонки не происходит.

...