Para entrar un procedure multilínea a través de la consola MySQL o por script, tienes que cambiar momentáneamente el delimitador de sentencia para permitir que el procedure completo como un sólo objeto, recordando volver el delimitador de nuevo al original luego:
Este tema se ha tratado en el foro muchas veces. Usa el buscador para encontrar losposts que se refieren a él.
Por lo demás, estás creando variables locales innecesriamente, sin consideramos que sólo las utilizas para ponerlo en la tabla. Esto da el mismo resultado:
Personalmente, crear un SP para ejecutar solamente eso me parece un desperdicio de tiempo y programación, a menos que los uses como modo de evitar sql-injection o aumentar la seguridad.
El tema se ha tratado anteriormente en el foro varias veces. Usa el buscador para localizar los posts.