私はあなたのためにそれを少し片付けて、サンプルコードを追加しました。私は常にパラメータ名をそれらが表すフィールドと同じに保ちますが、問題を防ぐために接頭辞p_を付けます。 sproc本体で宣言された変数でも同じことを行いますが、接頭辞はv_です。
ここに私の例のもう1つを見つけることができます:
MySQLの階層データから深度ベースのツリーを生成する(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');