Olá, estou tentando criar um novo usuário no MySql a partir de uma trigger. A ideia é que toda vez que eu insira um cliente no banco a trigger seja disparada e execute uma procedure que preencha os campos em uma tabela usuário e também crie este usuário, com as devidas permissões no meu SGBD (MySql).
Abaixo segue minha tentativa, mas da o seguinte erro:
error 1422: Explicit or implicit commit is not allowed in stored function or trigger.
Notem que nem cheguei a implementar os grants.
DELIMITER $$CREATE OR REPLACE PROCEDURE TESTE_PROCEDURE (IN CPF VARCHAR(15), IN NOME VARCHAR(20), IN SENHA VARCHAR(20))BEGIN DECLARE USUARIO VARCHAR(30); DECLARE SENHA VARCHAR(30); INSERT INTO USUARIO VALUES('4', NOME, SENHA, CPF); SET USUARIO = CONCAT(NOME, '@localhost'); CREATE USER USUARIO identified by '111222'; END $$DELIMITER ;DELIMITER $$CREATE TRIGGER TESTE_INSERCAO AFTER INSERT ON CLIENTE FOR EACH ROW BEGIN CALL TESTE_PROCEDURE(NEW.CPF, NEW.NOME, '123456'); END $$DELIMITER ;