По-просто, по-кратко, по-бързо: EXISTS .
IF EXISTS (SELECT 1 FROM people p WHERE p.person_id = my_person_id) THEN
-- do something
END IF;
Инструментът за планиране на заявки може да спре на първия намерен ред - за разлика от count() , което ще сканира всички (съвпадащи) редове независимо. Прави разлика с големите маси. Разликата е малка за условие за уникална колона:само един ред отговаря на изискванията и има индекс, който да го търси бързо.
Можете просто да използвате празен SELECT списък:
IF EXISTS (SELECT FROM people p WHERE p.person_id = my_person_id) THEN ...
SELECT списъкът няма влияние върху резултата от EXISTS . Само наличието на поне един квалификационен ред е от значение.