Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Funcion en Mysql no se crea

Estas en el tema de Funcion en Mysql no se crea en el foro de Mysql en Foros del Web. Me estoy volviendo loco. Llevo toda la tarde para hacer una misera funcion en mysql y no hay manera. Tengo esto: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MYSQL: ...
  #1 (permalink)  
Antiguo 02/07/2013, 12:37
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Funcion en Mysql no se crea

Me estoy volviendo loco. Llevo toda la tarde para hacer una misera funcion en mysql y no hay manera.

Tengo esto:

Código MYSQL:
Ver original 

Lo hago desde phpmyadmin, asi que no es necesario especificar un delimitador con "DELIMITER".
Tb he probado con ; al final del END pero nada
  #2 (permalink)  
Antiguo 02/07/2013, 12:52
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Funcion en Mysql no se crea

Hola mdromed:

La función no tiene absolutamente nada de malo. Ejecutando directamente tu código en una consola de MySQL observa que se crea y se invoca correctamente:

Código MySQL:
Ver original
  1. mysql> DELIMITER $$
  2.     -> BEGIN
  3.     ->    RETURN 1;
  4.     -> END$$
  5. Query OK, 0 rows affected (0.04 sec)
  6.  
  7. mysql> DELIMITER ;
  8. mysql> SELECT ff(10);
  9. +--------+
  10. | ff(10) |
  11. +--------+
  12. |      1 |
  13. +--------+
  14. 1 row in set (0.02 sec)

Haz verificado si te está regresando algún código de error??? no he trabajado con phpmyadmin, pero tengo la experiencia con otros administradores gráficos de que agregan código adicional que afecta lo que se ejecuta en el motor de BD... haz la prueba, que hice arriba... prueba crear directamente la función en una consola de MySQL para ver si te está regresando algún error.

Saludos
Leo.
  #3 (permalink)  
Antiguo 02/07/2013, 12:53
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Funcion en Mysql no se crea

Cita:
Iniciado por leonardo_josue Ver Mensaje
Hola mdromed:

La función no tiene absolutamente nada de malo. Ejecutando directamente tu código en una consola de MySQL observa que se crea y se invoca correctamente:

Código MySQL:
Ver original
  1. mysql> DELIMITER $$
  2.     -> BEGIN
  3.     ->    RETURN 1;
  4.     -> END$$
  5. Query OK, 0 rows affected (0.04 sec)
  6.  
  7. mysql> DELIMITER ;
  8. mysql> SELECT ff(10);
  9. +--------+
  10. | ff(10) |
  11. +--------+
  12. |      1 |
  13. +--------+
  14. 1 row in set (0.02 sec)

Haz verificado si te está regresando algún código de error??? no he trabajado con phpmyadmin, pero tengo la experiencia con otros administradores gráficos de que agregan código adicional que afecta lo que se ejecuta en el motor de BD... haz la prueba, que hice arriba... prueba crear directamente la función en una consola de MySQL para ver si te está regresando algún error.

Saludos
Leo.

Dice que "return 1" is not allowed here y otras veces que esta mal la sintaxis.
Si la funcion la creo con 1 sola linea y quito el begin y el end lo hace bien, por eso creo que el error es en el BEGIN o en el END.


Gracias amigo por responder
  #4 (permalink)  
Antiguo 02/07/2013, 12:56
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Funcion en Mysql no se crea

Ahora estoy probando con una app llamada "Debugger for Mysql" y da los mismos errores que phpmyadmin.

No entiendo por que?
  #5 (permalink)  
Antiguo 02/07/2013, 13:08
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Funcion en Mysql no se crea

Insisto, por qué no creas la función directamente en una consola de MySQL y así te darás cuenta si en realidad tienes algún error con la BD o es culpa de las herramientas que estás tratando de utilizar.

Te lo vuelvo a decir, la función no tiene absolutamente nada de malo...

incluso puedes agregar las lineas DELIMITER en PHP... podría apostar mi desayuno de mañana a que ese es un problema... independientemente de que lo hagas con phpmyadmin o con cualquier otra herramienta, el (;) sigue siendo delimitador de término de sentencia... puedes también hacer esa prueba desde phpmyadmin, ejecuta esto:

Código MySQL:
Ver original
  1. DELIMITER $$
  2.    RETURN 1;
  3. END$$
  4. DELIMITER ;

y veamos que pasa.

Saludos
Leo.
  #6 (permalink)  
Antiguo 02/07/2013, 13:15
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Funcion en Mysql no se crea

Cita:
Iniciado por leonardo_josue Ver Mensaje
Insisto, por qué no creas la función directamente en una consola de MySQL y así te darás cuenta si en realidad tienes algún error con la BD o es culpa de las herramientas que estás tratando de utilizar.

Te lo vuelvo a decir, la función no tiene absolutamente nada de malo...

incluso puedes agregar las lineas DELIMITER en PHP... podría apostar mi desayuno de mañana a que ese es un problema... independientemente de que lo hagas con phpmyadmin o con cualquier otra herramienta, el (;) sigue siendo delimitador de término de sentencia... puedes también hacer esa prueba desde phpmyadmin, ejecuta esto:

Código MySQL:
Ver original
  1. DELIMITER $$
  2.    RETURN 1;
  3. END$$
  4. DELIMITER ;

y veamos que pasa.

Saludos
Leo.

Me da error. Dice que sintaxis incorrecta cerca de "$$".
  #7 (permalink)  
Antiguo 02/07/2013, 14:11
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Funcion en Mysql no se crea

Hola de nuevo mdromed:

¿Quién está marcando el error? phpmyadmin, Debugger for Mysql o directamente la consola de MySQL?

otra vez te lo pido, ejecuta la consulta directamente en una consola de MySQL y dinos qué te marca... así podemos enfocarnos en revisar problemas con la BD o alguno de los moderadores te puede pasar al foro de Aplicaciones, si es que el problema es con alguno de los administradores que estás utilizando.

Saludos
Leo.
  #8 (permalink)  
Antiguo 03/07/2013, 05:19
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Funcion en Mysql no se crea

Cita:
Iniciado por leonardo_josue Ver Mensaje
Hola de nuevo mdromed:

¿Quién está marcando el error? phpmyadmin, Debugger for Mysql o directamente la consola de MySQL?

otra vez te lo pido, ejecuta la consulta directamente en una consola de MySQL y dinos qué te marca... así podemos enfocarnos en revisar problemas con la BD o alguno de los moderadores te puede pasar al foro de Aplicaciones, si es que el problema es con alguno de los administradores que estás utilizando.

Saludos
Leo.
Al final con un editor llamado MySQLYog admite el delimitador $$ y funciona!
Gracias leonardo_josue!
  #9 (permalink)  
Antiguo 03/07/2013, 05:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Funcion en Mysql no se crea

phpMyadmin te lo admite, pero debes indicarlo como delimitador de sentencias, en la ventana de SQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 03/07/2013, 06:01
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Funcion en Mysql no se crea

Cita:
Iniciado por gnzsoloyo Ver Mensaje
phpMyadmin te lo admite, pero debes indicarlo como delimitador de sentencias, en la ventana de SQL.
Ah, ok, no lo sabia gracias!
  #11 (permalink)  
Antiguo 03/07/2013, 16:56
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Funcion en Mysql no se crea

Cita:
Iniciado por gnzsoloyo Ver Mensaje
phpMyadmin te lo admite, pero debes indicarlo como delimitador de sentencias, en la ventana de SQL.
Por cierto como lo hago?
  #12 (permalink)  
Antiguo 03/07/2013, 19:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Funcion en Mysql no se crea

En la parte de SQL hay un textbox para eso...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 14/12/2013, 20:16
Avatar de mdromed  
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Funcion en Mysql no se crea

perfecto ! graciassssss

Etiquetas: funciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:34.