Procedure e Trigger no MySQL para atualizar a mesma tabela que o registro for inserido
Olá pessoal,
Estou tentando criar uma procedure no MySql para seja disparada sempre que um novo registro for cadastrado na tabela.
Ela precisa atualizar um campo específico concatenando dois outros campos de outra tabela. Isto é possível?
Preciso concatenar a coluna ID e ID_BANCO, da tabela empresa e atualizar a coluna CODIGO_OPERACAO da tabela proposta.
Executando o que eu fiz funciona certinho, mais o que eu quero é que ela rode sozinha atualizando o campo CodigoOperacao do registro novo logo após este registro ser criado, isto porque preciso do novo ID criado, do Documento cadastrado e do Id_banco cadastrado para poder atualizar o mesmo registro.
DELIMITER $$
CREATE PROCEDURE pr_codigo_operacao(IN _Id INT, IN _Documento VARCHAR(50), IN _IdBanco VARCHAR(50))
BEGIN
UPDATE propostas
SET CodigoOperacao = CONCAT(_Documento, "-", _IdBanco)
WHERE Id = _Id;
END
$$
Criei um trigger para chamar a procedure, porém a mesma esta dando erro quando tento fazer um INSERT,
ERRO
#1442 - Can't update table 'propostas' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
DELIMITER $$
CREATE TRIGGER tgr_atualiza_codigo_operacao AFTER INSERT ON propostas
FOR EACH ROW
BEGIN
CALL pr_codigo_operacao (new.Id, new.DocumentoCliente, new.Id_banco);
END
$$
Discussão (1)
Carregando comentários...