Ir para conteúdo

POWERED BY:

Arquivado

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

vostro

Trigger com IF usando um select

Recommended Posts

Olá,

 

 

Estou construindo um Trigger e nela estou usando um IF para detectar uma determinada situação através de um Select, para depois executar um Update em campo de uma tabela, mas infelizmente isto não esta funcionando, e estou sem entender por que não esta funcionando se alguém puder me ajudar agradeço, segue abaixo a Trigger:

 

##########

 

DELIMITER $$

CREATE TRIGGER `user_control` AFTER INSERT ON `cdr`

 

FOR EACH ROW BEGIN

 

SET ramal = NEW.src;

 

IF ((SELECT sum(billsec) as Seg FROM asteriskcdrdb.cdr C JOIN asterisk.users U ON C.src = U.name WHERE U.context = 'perfil1' and C.src = NEW.src GROUP BY C.src) > 100 ) THEN

 

SET ramal = NEW.src;

 

UPDATE asterisk.users U

SET U.context = 'perfil2'

WHERE U.context = 'perfil1' and C.src = @ramal;

 

INSERT INTO asteriskcdrdb.tbl_auditoria (new_context) VALUES (NEW.src);

 

END IF;

 

END$$

DELIMITER ;

 

 

##########

 

Já fiz alguns testes, tipo:

1) trocando a query que esta dentro do IF (SELECT ...), por uma query simples, ou seja, apenas comparando o valor recebido pelo NEW.src e funcionou normal.

2) executei a query que esta dentro do IF e funciona normalmente, ou seja, traz um valor maior do que 100, mas colocando na Trigger não funciona.

 

 

Alguém poderia me dar a solução ou alguma dica do que esta errado ?

 

 

Desde agradeço a atenção.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde amigo,

 

Tenta declarar uma variável INT pra receber o resultado do SELECT e depois usar ela no IF.

 

Só pra ver se muda algo. Abraço.

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.