Ir para conteúdo

POWERED BY:

Arquivado

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

Bruno Henrique da Costa

Trigger - campo de uma tabela só

Recommended Posts

Galera to com seguinte duvida, eu gostaria de só alterar o valor do campo na triguer, por exemplo:

 

DELIMITER $$
DROP TRIGGER IF EXISTS proUnUpdate;
CREATE TRIGGER proUnUpdate
AFTER UPDATE ON proun
FOR EACH ROW BEGIN
UPDATE proun SET descricao = UPPER(OLD.descricao)
WHERE idun = OLD.idun;
END$$
DELIMITER ;

 

se voces repararem, eu quero só colocar o campo descricao sempre maiusculo sabe, mas isso nao ta dando certo, pq a triguer ela executa ela mesmo, ou seja ficaria num loop infinito, como eu alteraria somente o campo??

Compartilhar este post


Link para o post
Compartilhar em outros sites

acredito que sua lógica está equivocada.

voce quer que o valor sempre entre no banco maiúsculo, vamos fazer a trigger before update então, pra antes do update ela atualizar o valor para maiúsculo

 

DELIMITER $
DROP TRIGGER IF EXISTS proUnUpdate;
CREATE TRIGGER proUnUpdate
BEFORE UPDATE ON proun
FOR EACH ROW BEGIN
        NEW.descricao = UPPER(NEW.descricao);
END$
DELIMITER ;

 

não testei a syntax, mas a logica seria +- essa eu acho

 

dessa forma, basicamente, voce muda o novo valor ANTES de ele ser inserido, assim no momento que o update ocorre de fato, voce ja possui ele maiúsculo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então eu testei dessa forma e ele deu erro de sintaxe, mas seria mais ou menos isso, eu quero q sempre o determnado campo ficasse maiusculo, mas nao to conseguindo achar uma solução



Galera consegui, segue abaixo

 

DELIMITER $
DROP TRIGGER IF EXISTS proUnUpdate;
CREATE TRIGGER proUnUpdate
BEFORE UPDATE ON proun
FOR EACH ROW BEGIN
SET new.descricao = UPPER(old.descricao);
END$
DELIMITER ;

 

--------------------

 

Utilizei o código do nosso amigo la, e só faltava eu dar o "SET" do update ;D

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.