Ir para conteúdo

Arquivado

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

David Figueiredo

Problema com TRIGGER

Recommended Posts

Boa tarde gente,

 

Criei essa trigger ai em baixo:

CREATE DEFINER=`root`@`%` TRIGGER `trggr_set_user_for_recebidos` BEFORE INSERT ON `recebidos` FOR EACH ROW 
BEGIN
DECLARE userid INT;

SELECT UserId INTO userid
FROM relatorio 
WHERE `Gateway` = NEW.`Gateway` AND MessageTo = SUBSTR(NEW.MessageFrom, 2) AND StatusCode = 200 ORDER BY SendTime DESC LIMIT 1;

SET NEW.UserId = userid;
END

No insert da tabela 'recebidos' o campo UserId sempre vem NULL, por isso antes de inserir na tabela busco o UserId da tabela relatorio levando em consideração os dados que são inseridos, pegando essa informação dou um SET no NEW.userId para que os dados sejam salvos corretamente.

 

O problema é que por algum motivo obscuro eu não estou conseguindo setar o valor em NEW.UserId. Já validei a query, fiz debug e era para ela estar funcionando corretamente, então por que não estou conseguindo setar?

 

Não sei se o problema pode ser de sintaxe. Quem puder me ajudar e analisar essa Trigger desde já agradeço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não conheço detalhes de Mysql mas userid não é palavra reservada ?

 

Tente usar algo como v_userid , só um palpite.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na realidade é até uma boa prática em objetos de BD as variáveis serem identifidas

 

 

VS_.... STRING

vn_... numerica

vd_ date

etc e tal

 

Não confunde com tabel , coluna etc.

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.