Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tạo stored procedure chứa nhiều câu lệnh SELECT trong MySQL

Giới thiệu

Stored procedure trong MySQL có thể chứa nhiều câu lệnh SELECT, mỗi câu trả về một result set riêng biệt.

1. Tạo stored procedure

mysql> DELIMITER // 
mysql> CREATE PROCEDURE select_statement()
    -> BEGIN
    ->     SELECT "HI" AS `FIRST VALUE`;
    ->     SELECT "HELLO" AS `SECOND VALUE`;
    -> END
    -> // 
Query OK, 0 rows affected (0.09 sec)
mysql> DELIMITER ;

Lưu ý: Phải đổi DELIMITER từ ';' sang '//' để tránh kết thúc procedure sớm.

2. Gọi procedure

mysql> CALL select_statement();

3. Kết quả (2 result set)

+-------------+
| FIRST VALUE |
+-------------+
| HI          |
+-------------+
1 row in set (0.00 sec)

+--------------+
| SECOND VALUE |
+--------------+
| HELLO        |
+--------------+
1 row in set (0.01 sec)

Query OK, 0 rows affected (0.01 sec)

Ứng dụng thực tế:

  • Trả về nhiều tập kết quả cho báo cáo đa phần
  • Kết hợp truy vấn thống kê + chi tiết trong một lần gọi
  • Giảm round-trip giữa ứng dụng và database

Trong ứng dụng (Java, PHP, Python...), cần dùng driver hỗ trợ multiple result sets (ví dụ: JDBC Statement.getMoreResults()).