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

Duda con Stored Procedures

Estas en el tema de Duda con Stored Procedures en el foro de Mysql en Foros del Web. Hola, tengo problemas al crear stored procedures en MySQL, estoy haciendo uno que inserte, actualice o elimine, segun la opcion seleccionada (1,2 o 3) pero ...
  #1 (permalink)  
Antiguo 04/09/2011, 12:34
 
Fecha de Ingreso: marzo-2011
Mensajes: 34
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta Duda con Stored Procedures

Hola, tengo problemas al crear stored procedures en MySQL, estoy haciendo uno que inserte, actualice o elimine, segun la opcion seleccionada (1,2 o 3) pero me salen errores al crearlo, la verdad casi nunca he usado SP, espero me puedan ayudar a encontrar que hago mal, aqui la sintaxis
Cita:
DELIMITER $$

CREATE PROCEDURE `escolar`.`spAdminAlumn`(IN accion INT, IN var_id INT, IN vat_nombre VARCHAR, IN var_carrera VARCHAR)

BEGIN
IF accion==1 /*INSERTAR*/
INSERT INTO alumnos(id,nombre,carrera) VALUES(var_id, var_nombre, var_carrera);
END IF;

IF accion==2 /*ACTUALIZAR*/
UPDATE nombre, carrera SET nombre=var_nombre, carrera=var_carrera WHERE id=var_id;
END IF;

IF accion==3 /*ELIMINAR*/
DELETE FROM alumnos WHERE id=var_id;
END IF;
END$$
Este es el error que me sale

Cita:
Query : CREATE PROCEDURE `escolar`.`spAdminAlumn`(IN accion INT, IN var_id INT, IN vat_nombre VARCHAR, IN var_carrera VARCHAR) BEGIN...

Error Code : 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 ' IN var_carrera VARCHAR)
BEGIN
IF accion==1 /*INSERTAR*/
INSERT INTO alum' at line 1
Gracias por la ayuda!
  #2 (permalink)  
Antiguo 05/09/2011, 08:17
Avatar de timoteo666  
Fecha de Ingreso: agosto-2011
Ubicación: /home/Gdl
Mensajes: 242
Antigüedad: 13 años, 3 meses
Puntos: 11
Respuesta: Duda con Stored Procedures

Creo que te puede funcionar asi:

DELIMITER $$

CREATE PROCEDURE `escolar`.`sp_AdminAlumn`(IN accion INTEGER(2), IN var_id INTEGER, IN vat_nombre VARCHAR(100), IN var_carrera VARCHAR(100))

BEGIN
IF accion in(1)
THEN
INSERT INTO alumnos(id,nombre,carrera) VALUES(var_id, var_nombre, var_carrera);
END IF;

IF accion IN(2)
THEN
UPDATE nombre, carrera SET nombre=var_nombre, carrera=var_carrera WHERE id=var_id;
END IF;

IF accion IN(3)
THEN
DELETE FROM alumnos WHERE id=var_id;
END IF;

END$$
DELIMITER;

no olvides dejar Karma
__________________
( + ) lineas de código ( - ) televisión

Etiquetas: stored-procedure, bases-de-datos
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 23:33.