Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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 useridWHERE `Gateway` = NEW.`Gateway` AND MessageTo = SUBSTR(NEW.MessageFrom, 2) AND StatusCode = 200 ORDER BY SendTime DESC LIMIT 1;
SET NEW.UserId = userid;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!!
Muito Obrigado Motta!!
É isso mesmo, mudei o nome da variável e deu certo! PROBLEMA RESOLVIDO. obg!!
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.
Não conheço detalhes de Mysql mas userid não é palavra reservada ?
Tente usar algo como v_userid , só um palpite.