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 originalCREATE 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))
BEGIN
IF (idx = "Agregar") THEN
SET @numUsuario = (SELECT MAX(id) FROM Usuarios);
SET @numUsuario = IF(@numUsuario IS NULL, 0, @numUsuario + 1);
INSERT INTO Usuarios(id, nombre, apellido, edad, genero, ciudad, estado, pais) VALUES(@numUsuario, nombrex, apellidox, edadx, generox, ciudadx, estadox, paisx);
ELSE
UPDATE Usuarios SET nombre = nombrex, apellido = apellidox, edad = edadx, genero = generox, ciudad = ciudadx, estado = estadox, pais = paisx WHERE id = idx;
END IF;
END$$
Espero sus respuestas, gracias.