Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Walter Chilomer

TRIGGER teimosa

Recommended Posts

Mestres,

 

Tenho a seguinte Trigger:

 

CREATE TRIGGER tgr_deb AFTER INSERT

ON tab_produtos

FOR EACH ROW

BEGIN

SELECT sum(fi_valor) AS total_deb FROM tab_produtos WHERE fi_ID like cod_fi_ID

IF (fi_val_total_compra=total_deb)

THEN

UPDATE tab_debito SET fi_confirma = NEW."S" WHERE fi_ID = NEW.cod_fi_ID

END IF

END;

 

Na execução retorna erro de sintaxe na linha 8 - (UPDATE...)

Alguém consegue me dar uma luz, onde está o erro?

 

Walter.

Fiquem bem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que seja necessário o uso de ponto e vírgula ao final de cada instrução, pra isso devemos alterar o delimitador:

DELIMITER $$

CREATE TRIGGER tgr_deb AFTER INSERT
ON tab_produtos
FOR EACH ROW
BEGIN
SELECT sum(fi_valor) AS total_deb FROM tab_produtos WHERE fi_ID like cod_fi_ID; # Aqui foi adicionado o ; finalizando a query
IF (fi_val_total_compra=total_deb)
THEN
UPDATE tab_debito SET fi_confirma = NEW."S" WHERE fi_ID = NEW.cod_fi_ID; # Aqui temos outra query
END IF
END $$

DELIMITER ;

Veja se resolve.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que seja necessário o uso de ponto e vírgula ao final de cada instrução, pra isso devemos alterar o delimitador:

DELIMITER $$

CREATE TRIGGER tgr_deb AFTER INSERT
ON tab_produtos
FOR EACH ROW
BEGIN
SELECT sum(fi_valor) AS total_deb FROM tab_produtos WHERE fi_ID like cod_fi_ID; # Aqui foi adicionado o ; finalizando a query
IF (fi_val_total_compra=total_deb)
THEN
UPDATE tab_debito SET fi_confirma = NEW."S" WHERE fi_ID = NEW.cod_fi_ID; # Aqui temos outra query
END IF
END $$

DELIMITER ;

Veja se resolve.

lokaodomau,

Valeu cara.

Só faltou um ponto e virgula no final do End;

Ficou assim:

DELIMITER $$
CREATE TRIGGER tgr_deb AFTER INSERT
ON tab_produtos
FOR EACH ROW
BEGIN
SELECT sum(fi_valor) AS total_deb FROM tab_produtos WHERE fi_ID like cod_fi_ID;
IF (fi_val_total_compra=total_deb) THEN UPDATE tab_debito SET fi_confirma = NEW."S" WHERE fi_ID = NEW.cod_fi_ID;
END IF
END;
Obrigadão.
Fique bem.
DELIMITER ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.