Hola a todos, bueno soy nuevo en esto de los sp, y queria saber si mi sp funciona.
Basicamente queria saber si la transaccion funciona y como probarla.
De hecho mi duda va mas que nada por el tema de la transaccion.
Descripcion del SP
BD: MySql
Sp que pregunta si existe o no un usuario.
Si el usuario no existe realiza la insercion
Si el usuario existe le asigna 1 a un parametro de salida
Codigo del SP
Código:
DELIMITER $$
USE `prueba`$$
DROP PROCEDURE IF EXISTS `insertacliente`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `insertacliente`(IN id INTEGER,IN nombcli VARCHAR(45),
IN dire VARCHAR(45),IN fono INTEGER,OUT res INTEGER)
BEGIN
DECLARE a INT;
SET AUTOCOMMIT=0;
START TRANSACTION;
SELECT COUNT(idcliente) INTO res FROM cliente WHERE idcliente=id;
IF res=0 THEN
INSERT INTO cliente (idcliente,nombre,direccion,telefono) VALUES (id,nombcli,dire,fono);
ELSE
SET res=1;
END IF;
SET a=(SELECT @@error_count);
IF a=0 THEN
COMMIT;
ELSE
ROLLBACK;
END IF;
END$$
DELIMITER ;
Desde ya muchas gracias