Chính thức, PostgreSQL chỉ có "chức năng". Các chức năng kích hoạt đôi khi được gọi là "quy trình kích hoạt", nhưng việc sử dụng đó không có ý nghĩa riêng biệt. Trong nội bộ, các chức năng đôi khi được gọi là các thủ tục, chẳng hạn như trong danh mục hệ thống pg_proc
. Đó là một sự tiếp quản từ PostQUEL. Bất kỳ tính năng nào mà một số người (có thể có kinh nghiệm trong các hệ thống cơ sở dữ liệu khác nhau) có thể liên kết với các quy trình, chẳng hạn như mức độ liên quan của họ để ngăn chặn việc tiêm SQL hoặc sử dụng các tham số đầu ra, cũng áp dụng cho các chức năng như chúng tồn tại trong PostgreQuery.
Tuy nhiên, bây giờ, khi mọi người trong cộng đồng PostgreQuery nói về "các thủ tục được lưu trữ" hoặc "các thủ tục được lưu trữ thực sự", tuy nhiên, họ thường có nghĩa là một tính năng giả định của một đối tượng giống như chức năng có thể bắt đầu và dừng các giao dịch trong cơ thể của nó, một số chức năng hiện tại không thể làm Việc sử dụng thuật ngữ "thủ tục lưu trữ" trong ngữ cảnh này dường như tương tự với các sản phẩm cơ sở dữ liệu khác. Xem chủ đề danh sách gửi thư này cho một ý tưởng mơ hồ.
Tuy nhiên, trên thực tế, sự khác biệt về chức năng này so với thủ tục về khả năng kiểm soát giao dịch của chúng không được chấp nhận phổ biến và chắc chắn nhiều lập trình viên không có sai lệch cơ sở dữ liệu sẽ coi một thủ tục giống như Pascal là một hàm không có giá trị trả về. (Tiêu chuẩn SQL dường như có một nền tảng trung gian, trong đó một thủ tục theo mặc định có hành vi giao dịch khác với chức năng, nhưng điều này có thể được điều chỉnh cho mỗi đối tượng.) Vì vậy, trong mọi trường hợp và đặc biệt là khi xem xét các câu hỏi trên Stack Exchange với một đối tượng rất hỗn hợp, bạn nên tránh giả định quá nhiều và sử dụng các thuật ngữ rõ ràng hơn hoặc xác định các thuộc tính mà bạn mong đợi.