Офіційно PostgreSQL має лише "функції". Функції тригера іноді називають "тригерними процедурами", але використання цього не має чіткого значення. Внутрішньо, функції іноді називають процедурами, такими як у системному каталозі pg_proc
. Це підтвердження від PostQUEL. Будь-які функції, які деякі люди (можливо, мають досвід роботи в різних системах баз даних) можуть пов'язувати з такими процедурами, як їх відповідність запобіганню ін'єкцій SQL або використанню вихідних параметрів, також застосовуються до функцій, які вони існують у PostgreSQL.
Тепер, коли люди у спільноті PostgreSQL говорять про "збережені процедури" або "реальні збережені процедури", однак, вони часто означають гіпотетичну особливість об'єкта, подібного до функцій, який може запускати та зупиняти транзакції у своєму тілі, те, що поточні функції не можуть робити. Використання в цьому контексті терміна "збережена процедура" є аналогічним до інших продуктів бази даних. Побачити цю тему списку розсилки, щоб отримати нечітку ідею.
На практиці, однак, таке розмежування функції від процедури з точки зору їх можливостей контролю транзакцій не є загальновизнаним, і, безумовно, багато програмістів без упередженості бази даних приймуть інтерпретацію подібної Паскалю процедури як функції без зворотного значення. (Здається, стандарт SQL займає середнє місце, оскільки процедура за замовчуванням має інше поведінку транзакцій, ніж функція, але це може бути відрегульовано для кожного об'єкта.) Отже, у будь-якому випадку, особливо, коли ми розглядаємо питання щодо Stack Exchange з дуже змішана аудиторія, вам слід уникати занадто багато і використовувати чіткіші терміни або визначати властивості, які ви очікуєте.