Trong MySQL, một Stored Procedure là một nhóm các câu lệnh SQL được lưu trữ trong cơ sở dữ liệu. Các Stored Procedure này có thể được gọi hoặc thực thi bởi ứng dụng khách hoặc bởi các trigger hoặc stored procedures khác. Sử dụng stored procedures giúp tăng cường bảo mật, giảm lượng truyền dữ liệu giữa ứng dụng và cơ sở dữ liệu, và tập trung logic xử lý dữ liệu.
Tạo Stored Procedure
Cú pháp cơ bản:
CREATE PROCEDURE procedure_name (parameter_list)
BEGIN
-- Các câu lệnh SQL
END;
procedure_name
là tên của stored procedure.parameter_list
là danh sách các tham số mà procedure có thể nhận, có thể là dạng đầu vào (IN), đầu ra (OUT), hoặc cả hai (INOUT). Các tham số này là tùy chọn.- Phần thân của procedure bao gồm một hoặc nhiều câu lệnh SQL, được bao quanh bởi
BEGIN
vàEND
.
Gọi Stored Procedure
Cú pháp cơ bản:
CALL procedure_name(parameter_values);
procedure_name
là tên của stored procedure bạn muốn gọi.parameter_values
là giá trị của các tham số được truyền vào procedure. Số lượng và kiểu dữ liệu của các giá trị này phải phù hợp với những gì đã được định nghĩa trong procedure.
Ví dụ
Ví dụ 1: Tạo một stored procedure không có tham số.
Giả sử bạn muốn tạo một procedure để lấy tất cả nhân viên:
DELIMITER //
CREATE PROCEDURE GetAllEmployees()
BEGIN
SELECT * FROM employees;
END //
DELIMITER ;
Sau khi tạo, bạn có thể gọi procedure này như sau:
CALL GetAllEmployees();
Ví dụ 2: Tạo một stored procedure có tham số.
Giả sử bạn muốn tạo một procedure để cập nhật lương cho nhân viên:
DELIMITER //
CREATE PROCEDURE UpdateSalary(IN empID INT, IN newSalary DECIMAL(10,2))
BEGIN
UPDATE employees SET salary = newSalary WHERE id = empID;
END //
DELIMITER ;
Gọi procedure với tham số:
CALL UpdateSalary(1, 5000.00);
Lưu ý khi sử dụng Stored Procedures
- Stored Procedures giúp tối ưu hóa hiệu suất bằng cách giảm lượng truyền tải dữ liệu và số lần phân tích cú pháp các câu lệnh SQL.
- Có thể tái sử dụng và chia sẻ logic ứng dụng giữa các ứng dụng.
- Giúp tăng cường bảo mật bằng cách ẩn chi tiết thực thi từ người dùng và giới hạn quyền truy cập đến dữ liệu.
- Cần lưu ý quản lý phiên bản và thay đổi của stored procedures trong môi trường sản xuất để tránh gây ra sự cố không mong muốn.
Comments