Tôi đã thu dọn nó một chút cho bạn và thêm mã ví dụ. Tôi luôn giữ cho các tên tham số của mình giống với các trường mà chúng đại diện nhưng có tiền tố là p_ để ngăn chặn sự cố. Tôi làm điều tương tự với các biến được khai báo trong phần thân mầm nhưng tiền tố bằng v_.
Bạn có thể tìm thấy một ví dụ khác của tôi ở đây:
Tạo cây dựa trên Độ sâu từ Dữ liệu phân cấp trong MySQL (không có CTE)
drop procedure if exists emp_performance;
delimiter #
create procedure emp_performance
(
in p_employee_id varchar(10)
)
begin
declare v_counter int unsigned default 0;
create temporary table tmp engine=memory select time_in, time_out
from attendance where employee_id = p_employee_id;
-- do stuff with tmp...
select count(*) into v_counter from tmp;
-- output and cleanup
select * from tmp order by time_in;
drop temporary table if exists tmp;
end#
delimiter ;
call emp_performance('E123456789');