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:
Al ejecutar cada una por separado funcionan pero al intentar ejecutar la funcion tal cual la muestro me manda el siguiente error.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
Explicit or implicit commit is not allowed in stored function or trigger