Mysql
 sql >> Base de données >  >> RDS >> Mysql

Création de tables temporaires dans la procédure stockée MySQL

Je l'ai un peu rangé pour vous et j'ai ajouté un exemple de code. Je garde toujours mes noms de paramètres identiques aux champs qu'ils représentent mais préfixés avec p_ ce qui évite les problèmes. Je fais la même chose avec les variables déclarées dans le corps du sproc mais préfixées avec v_.

Vous pouvez trouver un autre de mes exemples ici :

Génération d'un arbre basé sur la profondeur à partir de données hiérarchiques dans MySQL (pas de 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');