Hola, estoy ejecutando las siguientes funciones:
Código:
CREATE FUNCTION funcion (varemail VARCHAR(40),varpass BLOB,) RETURNS VARCHAR(50)
BEGIN
DECLARE insemail VARCHAR(40);
SET insemail = (SELECT email FROM sfusuarios WHERE email = varemail);
IF(insemail IS NULL) THEN
CALL procedu(varemail,varpass);
RETURN 'El email no existe';
ELSE
RETURN 'EL email ya esta en uso.';
END IF;
END
Código:
CREATE PROCEDURE procedu (IN varemail VARCHAR(70),IN varpass BLOB)
BEGIN
DECLARE idusuario INT;
START TRANSACTION;
INSERT INTO sfusuarios (email,pass) VALUES (varemail,varpass);
SET idusuario = (SELECT idusu FROM sfusuarios WHERE email = varemail);
IF(idusuario IS NOT NULL) THEN
INSERT INTO sfperfil (idusu,fechanac) VALUES (idusuario,varfechanac);
END IF;
COMMIT;
END
Al ejecutar cada una por separado funcionan pero al intentar ejecutar la funcion tal cual la muestro me manda el siguiente error.
Explicit or implicit commit is not allowed in stored function or trigger