Bueno, por lo pronto, toda esa sintaxis está mal para ser MySQL. Te debería disparar errores de sintaxis o ejecución.
Vamos a ver:
- Los Sp de más de una linea o sentencia deben forzosamente poner su código dentro de un bloque BEGIN/END, cosa que no se cumple en tu ejemplo.
- No terminan en END PROCEDURE, eso es sintaxis de Oracle.
- Toda sentencia debe si o si terminar en un punto y coma (;). de lo contrario generarán errores.
- El controlador de flujo IF requiere THEN. Lo pusiste mal escrito.
- El DROP TABLE sólo funciona si la tabla se crea, y no se vé donde está.
- Las tablas TEMPORARY, si son creadas dentro de un SP no tienen persistencia fuera de él. Es decir, desaparecen en forma automática. Físicamente.
- Si una tabla TEMPORARY se crea fuera del SP, es invisible dentro de él, a menos que la instancia de conexión sea la misma.
- Las tablas MEMORY permanecen fuera de la ejecución, pero los datos que contienen se borran al terminar el SP.
En definitiva, para cumplir aproximadamente con lo que quieres, la sintaxis más cercana podría ser:
Código MySQL:
Ver original
# Esto no tiene sentido. No se ve de donde se obtiene "valor"
...