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

Insert into Stored Procedure

Estas en el tema de Insert into Stored Procedure en el foro de Mysql en Foros del Web. Hola buenas, tengo un problema que no se cómo solucionar: Éste es un "INSERT INTO" que funciona perfectamente: Código: INSERT INTO tabla (v1,v2,v3,v4) VALUES(NULL,NULL,valor1,'valor2'); Donde ...
  #1 (permalink)  
Antiguo 20/05/2010, 08:08
 
Fecha de Ingreso: febrero-2008
Mensajes: 40
Antigüedad: 16 años, 2 meses
Puntos: 0
Insert into Stored Procedure

Hola buenas, tengo un problema que no se cómo solucionar:

Éste es un "INSERT INTO" que funciona perfectamente:

Código:
INSERT INTO tabla (v1,v2,v3,v4) VALUES(NULL,NULL,valor1,'valor2');
Donde v1 es primary key, autoincrement
y v2 es un atributo que puede ser NULL

pues cuando intento crear una "STORED PROCEDURE" con ese insert, me da error

Código:
CREATE PROCEDURE nombreProcedura(IN valor1 int,IN valor2 VARCHAR(50))
BEGIN
INSERT INTO tabla (v1,v2,v3,v4) VALUES(NULL,NULL,valor1,'valor2');
END;
cual es el problema? El error que da es el siguiente:

Código:
MySQL ha dicho: Documentación
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
¿Alguna idea de lo que está mal?

Muchísimas gracias!

Última edición por thorrr; 20/05/2010 a las 08:14
  #2 (permalink)  
Antiguo 20/05/2010, 09:01
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, 4 meses
Puntos: 2658
Respuesta: Insert into Stored Procedure

Si estás usando la consola de MySQL o bien el MySQL Query Browser como editor de scripts para ingresar el SP, debes hacerlo de esta forma:
Código MySQL:
Ver original
  1. DELIMITER $$
  2. DROP PROCEDURE IF EXISTS nombreProcedura$$
  3. CREATE PROCEDURE nombreProcedura(IN valor1 int,IN valor2 VARCHAR(50))
  4. INSERT INTO tabla (v1,v2,v3,v4) VALUES(NULL,NULL,valor1,'valor2');
  5. END$$
Si usas otra cosa, será mejor que nos lo digas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 20/05/2010, 09:24
 
Fecha de Ingreso: febrero-2008
Mensajes: 40
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Insert into Stored Procedure

Muchas gracias!!

Pero no entiendo porqué tu forma de hacerlo me funciona bien en la consola, y en la pestaña de SQL de phpMyAdmin no..

De todos modos me sirve!!
  #4 (permalink)  
Antiguo 20/05/2010, 09:34
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, 4 meses
Puntos: 2658
Respuesta: Insert into Stored Procedure

En la pestaña de SQL en phpMyAdmin, verás abajo a la izquierda un textbox que dice "Delimitador" o "Separador".
Allí le debes poner $$ y usar el script de esta forma:
Código MySQL:
Ver original
  1. DROP PROCEDURE IF EXISTS nombreProcedura$$
  2. CREATE PROCEDURE nombreProcedura(IN valor1 INT,IN valor2 VARCHAR(50))
  3. INSERT INTO tabla (v1,v2,v3,v4) VALUES(NULL,NULL,valor1,'valor2');
  4. END$$
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 20/05/2010, 09:49
 
Fecha de Ingreso: febrero-2008
Mensajes: 40
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Insert into Stored Procedure

Comprobado, funciona perfectamente.

Me lo apunto

Gracias de nuevo!

Etiquetas: insert, procedure, stored
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 00:51.