Header Ads Widget

Viết stored procedure đầu tiên

Stored procedure đầu tiên khá đơn giản. Nó chỉ có chức năng duy nhất là lấy thông tin về tất cả các sản phẩm được lưu trong bảng products. Hãy xem xét đoạn mã dưới đây:

Mã:
 DELIMITER //
CREATE PROCEDURE GetAllProducts()
  BEGIN
  SELECT *  FROM products;
  END //
DELIMITER ;
Dòng đầu tiên bạn thấy là DELIMITER//. Dòng lệnh này thực sự không liện quan đến stored procedure. Phát biểu DELIMITER được dùng để thay đổi cú pháp phân cách chuẩn từ dấu “;” thành một dấu khác, trong trường hợp này là dấu “//”. Với việc làm này, bạn có thể viết được nhiều dòng SQL trong 1 stored procedure bằng việc sử dụng dấu “;” làm dấu phân cách dòng.

Sau từ khóa END, bạn lại sử dụng dấu phân cách // để ra hiệu cho trình biên dịch biết là đã hết stored procedure. Dòng cuối cùng, đưa cú pháp phân cách trở về trạng thái “nguyên thủy”, tức dấu “;”.

Để tạo 1 stored procedure mới, bạn sử dụng phát biểu CREATE PROCEDURE. Sau phát biểu CREATE PROCEDURE là tên của stored procedure mà bạn muốn đặt, trong ví dụ trên là GetAllProducts. Dĩ nhiên, tên của stored procedure ít nhiều mang tính gợi nhớ.

Phần thân của stored procedure được bắt đầu bởi cặp từ khóa BEGIN và END. Các câu lệnh SQL được đặt trong block này. Chúng ta sẽ phân tích chi tiết trong các phần sau. Đến đây, bạn đã hoàn tất việc tạo 1 stored procedure. Tiếp theo, chúng ta cần biết cách thức để triệu gọi 1 stored procedure trong 1 ứng dụng hay trong command line của MySQL.

Triệu gọi stored procedure

Để triệu gọi 1 stored procedure, chúng ta sử dụng câu lệnh SQL sau:

Mã:
CALL STORED_PROCEDURE_NAME()
Ví dụ với stored procedure vừa tạo ở trên:
Mã:
CALL GetAllProducts();

Nhận xét