PostgreSQL Functions (còn được gọi là Stored Procedures) được tạo ra để thực hiện các truy vấn SQL để đạt được một mục tiêu cụ thể. Chúng cho phép bạn tái sử dụng logic bằng cách gọi function thay vì phải viết lại các truy vấn 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);