Fórum Trigger Após Inserção de Dados atualizar o Saldo #478744
12/05/2014
0
Boa noite pessoal,
Sou novo no mundo de Trigger no MySql, gostaria de uma ajuda para resolver um problema que não estou conseguindo resolver.
Preciso de uma Trigger que Após a Inserção de um valor de débito, pegue o valor do Saldo do Registro anterior e atualize no novo registro que acabou de ser inserido, ou seja, SALDO - Valor Débito.
Utilizei o seguinte script para a criação da Trigger:
O Select é para selecionar os dados do saldo atual do último registro e inserir na variável SALDO;
Após o Insert na tabela conta oude foi inserido um valor de débito no campo con_valor_debito a Trigger deve atualizar este novo registro pegando o saldo anterior e diminuindo com o valor do débito e atualizar o campo con_saldo no novo registro.
Porém quando executo o insert apresenta o seguinte erro: Error Code: 1172. Result consisted of more than one row.
Agradeço desde já quem puder me orientar a resolver este problema, estou precisando muito desta Trigger.
Sou novo no mundo de Trigger no MySql, gostaria de uma ajuda para resolver um problema que não estou conseguindo resolver.
Preciso de uma Trigger que Após a Inserção de um valor de débito, pegue o valor do Saldo do Registro anterior e atualize no novo registro que acabou de ser inserido, ou seja, SALDO - Valor Débito.
Utilizei o seguinte script para a criação da Trigger:
DELIMITER $$ CREATE TRIGGER TR_CONTA AFTER INSERT ON tb_conta FOR EACH ROW BEGIN DECLARE SALDO DECIMAL; SELECT con_saldo FROM tb_conta INTO SALDO; UPDATE tb_conta SET con_saldo = SALDO - NEW.con_valor_debito WHERE cod_id_conta = NEW.cod_id_conta; END $$ DELIMITER ;
O Select é para selecionar os dados do saldo atual do último registro e inserir na variável SALDO;
Após o Insert na tabela conta oude foi inserido um valor de débito no campo con_valor_debito a Trigger deve atualizar este novo registro pegando o saldo anterior e diminuindo com o valor do débito e atualizar o campo con_saldo no novo registro.
Porém quando executo o insert apresenta o seguinte erro: Error Code: 1172. Result consisted of more than one row.
Agradeço desde já quem puder me orientar a resolver este problema, estou precisando muito desta Trigger.
Jorgito Paiva
Curtir tópico
+ 0
Responder
Posts
29/05/2014
Claudio Lopes
Creio que o seu problema seja o FOR EACH ROW
Bom não conheço muito de Mysql, já fiz gatilhos no sql server, pelo que eu pesquisei esse erro é por você retornar várias linhas para o seu insert. talvez aqui
SELECT con_saldo FROM tb_conta INTO SALDO;
de uma estudada como utilizar variaveis no mysql, eu fiz algo parecido no sqlserver usando a variavel, pegando o valor antigo antes do insert e depois atualizando os dados (subtraindo)
Bom não conheço muito de Mysql, já fiz gatilhos no sql server, pelo que eu pesquisei esse erro é por você retornar várias linhas para o seu insert. talvez aqui
SELECT con_saldo FROM tb_conta INTO SALDO;
de uma estudada como utilizar variaveis no mysql, eu fiz algo parecido no sqlserver usando a variavel, pegando o valor antigo antes do insert e depois atualizando os dados (subtraindo)
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)