Вопросы к Поиску с Алисой
Разница между командами SELECT FOR UPDATE и SELECT FOR NO KEY UPDATE заключается в характере блокировки строк в PostgreSQL. habr.com postgrespro.ru
SELECT FOR UPDATE предполагает полное изменение (или удаление) строки. habr.com Строки, выбранные оператором SELECT, блокируются как для изменения и защищаются от блокировки, изменения и удаления другими транзакциями до завершения текущей. postgrespro.ru docs.arenadata.io
SELECT FOR NO KEY UPDATE предполагает изменение только тех полей, которые не входят в уникальные индексы. habr.com При таком изменении все внешние ключи остаются без изменений. habr.com
Таким образом, SELECT FOR UPDATE обеспечивает более строгую блокировку, в то время как SELECT FOR NO KEY UPDATE предлагает более слабый режим. postgrespro.ru docs.arenadata.io