PostgreSQL Function (Còn gọi là Stored Procedures) được sử dụng để thực thi các câu sql để thực hiện một mục đích nhất định. Nó cho phép tái sử dụng bằng cách gọi function thay vì phải viết lại các câu sql.
Tạo PostgreSQL Function
Để tạo một Function do người dùng định nghĩa mới trong PostgreSQL, bạn sử dụng câu lệnh CREATE FUNCTION như sau:
CREATE FUNCTION function_name(param_1 type, param_2 type) RETURNS type AS BEGIN -- logic END; LANGUAGE language_name;
Với language_name chỉ ra ngôn ngữ của hàm. Với PostgreSQL là plpgsql.
VD 1: Chúng ta có bảng staff có dữ liệu như sau:
Giờ chúng ta sẽ viết 1 function đơn giản để lấy số lượng bản ghi của bảng.
CREATE OR REPLACE FUNCTION getStaffCount() RETURNS integer AS $$ BEGIN RETURN (SELECT count(*) FROM staff); END $$ LANGUAGE plpgsql;
Để gọi function này sử dụng câu lệnh SQL Sau:
SELECT getStaffCount();
Kết quả:
VD2: Lấy số lượng số bản ghi trong bảng staff theo vị trí (position)
CREATE OR REPLACE FUNCTION getStaffCountByPosition(_position character varying) RETURNS integer AS $$ BEGIN RETURN (SELECT count(*) FROM staff WHERE position = _position); END $$ LANGUAGE plpgsql;
Kết quả:
Xóa PostgreSQL Function
Để xóa / drop PostgreSQL Function chúng ta sử dụng cú pháp sau:
DROP FUNCTION [ IF EXISTS ] function_name (param_1, param_2, ...) [ CASCADE | RESTRICT ]
VD: Xóa 2 PostgreSQL function đã tạo ở bên trên chúng ta sử dụng câu sql sau:
DROP FUNCTION getStaffCount();
DROP FUNCTION getStaffCountByPosition(character varying);