Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Erstellen temporärer Tabellen in MySQL Stored Procedure

Ich habe es für Sie ein wenig aufgeräumt und Beispielcode hinzugefügt. Ich halte meine Parameternamen immer gleich wie die Felder, die sie darstellen, aber mit dem Präfix p_, was Probleme verhindert. Ich mache dasselbe mit Variablen, die im Sproc-Körper deklariert sind, aber mit dem Präfix v_.

Ein weiteres Beispiel von mir finden Sie hier:

Generieren eines tiefenbasierten Baums aus hierarchischen Daten in MySQL (keine CTEs)

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');