Nếu chúng ta muốn sử dụng các câu lệnh đã chuẩn bị sẵn trong một thủ tục được lưu trữ thì nó phải được viết bên trong khối BEGIN và END. Để hiểu nó, chúng tôi đang tạo một ví dụ với sự trợ giúp của chúng tôi có thể lấy tất cả các bản ghi từ một bảng bằng cách chuyển tên của bảng làm tham số của thủ tục được lưu trữ.
Ví dụ
mysql> DELIMITER // mysql> Create procedure tbl_detail(tab_name Varchar(40)) -> BEGIN -> SET @A:= CONCAT('Select * from',' ',tab_name); -> Prepare stmt FROM @A; -> EXECUTE stmt; -> END // Query OK, 0 rows affected (0.00 sec)
Bây giờ gọi thủ tục này bằng cách đặt tên của bảng làm tham số của nó và nó sẽ hiển thị tất cả các bản ghi của bảng đó.
mysql> DELIMITER; mysql> CALL tbl_detail('Student’); +------+--------+ | Id | Name | +------+--------+ | 1 | Ram | | 2 | Shyam | | 3 | Gaurav | +------+--------+ 3 rows in set (0.00 sec) Query OK, 0 rows affected (0.03 sec)