Mysql
 sql >> Database >  >> RDS >> Mysql

Creazione di tabelle temporanee in MySQL Stored Procedure

L'ho riordinato un po' per te e ho aggiunto il codice di esempio. Mantengo sempre i nomi dei miei parametri uguali ai campi che rappresentano ma prefisso p_ che previene problemi. Faccio lo stesso con le variabili dichiarate nel corpo di sproc ma prefisso v_.

Puoi trovare un altro dei miei esempi qui:

Generazione di un albero basato sulla profondità da dati gerarchici in MySQL (senza 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');