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 $$
Pergunta
Letícia Leite Caetano
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 ;
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.