Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/06/2014, 22:35
LinkServ
 
Fecha de Ingreso: junio-2014
Mensajes: 18
Antigüedad: 9 años, 10 meses
Puntos: 0
Pregunta ¿Qué estoy haciendo mal? [Procedimiento almacenado]

Hola a todos,

Soy yo nuevamente, esta vez mi problema es el siguiente:

Después de unas cuantas horas leyendo acerca de los procedimiento almacenados,
he creado uno propio, el objetivo de mi procedimiento es añadir un nuevo usuario a una tabla (Usuarios) o modificar (dependiendo de cómo mande a llamar dicho procedimiento).

Cada usuario nuevo obtiene una id automáticamente (incrementandole un 1 al número de la id del último registro).

Funciona bien cuando se trata de agregar al primer usuario con la id 0 en la tabla, lo mismo con el segundo usuario con la id 1, pero al querer insertar el tercer usuario con la id 2 es donde me bloqueo... Pues me quiere agregar el tercer usuario con la id 1.

Mi procedimiento almacenado es el siguiente:

Código SQL:
Ver original
  1. CREATE PROCEDURE CrearUsuario (IN idx CHAR(9), IN nombrex VARCHAR(25), IN apellidox VARCHAR(25), IN edadx INT(2), IN generox CHAR(1), IN ciudadx VARCHAR(30), IN estadox VARCHAR(30), IN paisx VARCHAR(30))
  2. BEGIN
  3.     IF (idx = "Agregar") THEN
  4.         SET @numUsuario = (SELECT MAX(id) FROM Usuarios);
  5.         SET @numUsuario = IF(@numUsuario IS NULL, 0, @numUsuario + 1);
  6.         INSERT INTO Usuarios(id, nombre, apellido, edad, genero, ciudad, estado, pais) VALUES(@numUsuario, nombrex, apellidox, edadx, generox, ciudadx, estadox, paisx);
  7.     ELSE
  8.         UPDATE Usuarios SET nombre = nombrex, apellido = apellidox, edad = edadx, genero = generox, ciudad = ciudadx, estado = estadox, pais = paisx WHERE id = idx;
  9.     END IF;
  10. END$$


Espero sus respuestas, gracias.

Última edición por gnzsoloyo; 11/06/2014 a las 06:42 Razón: Usar HIGHLIGHT "SQL", por favor.