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
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)) 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.