sql >> Base de Datos >  >> RDS >> Mysql

Crear tablas temporales en MySQL Stored Procedure

Lo arreglé un poco para usted y agregué un código de ejemplo. Siempre mantengo los nombres de mis parámetros iguales a los campos que representan, pero con el prefijo p_ que evita problemas. Hago lo mismo con las variables declaradas en el cuerpo del sproc pero con el prefijo v_.

Puedes encontrar otro de mis ejemplos aquí:

Generación de árbol basado en profundidad a partir de datos jerárquicos en MySQL (sin 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');