А есть ли разница в выполнении запросов
exists(select * from ...)
exists(select field1 from ...)
exists(select 1 from ...)
?
Выполнял запрос
update dashcodes d set
  d.warenum=:p_num_min
where
  d.warenum=:p_num_max
  and not exists(select 1 from dashcodes d2
     where d2.warenum=:p_num_min and d2.code_=d.code_);
суть которого в том, что у записи меняется PK, и предварительно проверяется что записи с новым PK не существует. Пока было and not exists(select 1 - птица ругалась на совпадение ключей, заменил на and not exists(select * - все прошло без ошибок.

FB 1.5.3
PS. Возможно я пересекся с другой незавершенной транзакцией - это конечно все объясняет. Хотя остается вопрос о предпочтительности той или иной конструкции.

Ответить