Cita: No se si esta sea una pregunta tonta pero tengo una duda de como utilizar el delimiter... he estado creando Stored Procedures desde el MySQL Administrator y en ningun momento he utilizado el delimiter ya que si lo introduzco al inicio del SP (antes de create procedure) me aparece un error.
El DELIMITER en el MySQL Administrator lo pone el mismo programa sin que lo veas. Es parte de la rutina de carga programada.
Por eso no lo ves.
El tema es simple:
Un stored procedure debe cargarse en el sistema como un sólo objeto. Pero cuando ese script contiene múltiples líneas distintas, cada fin de sentencia tiene el delimitador de sentencias por default: ";", lo que genera un error de sintaxis.
¿Cómo hacer para que el cuerpo del script pueda cargarse sin errores? Simple: Se cambia momentáneamente el símbolo usado para delimitar las sentencias y se lo usa sólo al final del cuerpo del procedure...
Pero este sistema requiere que la interfase usada no le agregue nada, sino que se limite a enviar el script completo al MySQL. Algunas de ellas le agregan o verifican cosas, lo que hace que no sea funcional en todos los casos.
Es funcional si el script se ejecuta directamente en el MySQL Query Browser, donde incluso la plantilla de creación de procedimientos y funciones ya las incluyen, y en la consola de MySQL, donde hay que escribir todo a mano. Fuera de eso, hay que ver el uso de cada programa.
El phpMyAdmin, por ejemplo, incluye un textbox en el formulario de SQL para indicar cuál será el terminador de sentencia, por lo que allí no se necesita poner DELIMITER.