Ir para conteúdo

POWERED BY:

Arquivado

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

Paulo Rodrigues

Triggers, quando usar?

Recommended Posts

Olá galera! beleza?

 

Estou desenvolvendo uma aplicação em php/mysql e estava pensando em algumas coisas para usar a meu favor na hora de programar, sendo assim, tem muita coisa que eu poderia ja fazer no banco de dados, deixando até mais limpo o meu código em si.

 

Eu tive a idéia de deixar em meu campo 'dataRegistro' um valor Default, na hora pensei na function NOW() do próprio MySQL, porém não consegui usar, ele diz que é invalido eu deixar NOW() como valor default no campo.

 

Dei uma pesquisada e descobri que não era mesmo possivel, e vi algumas dicas sobre isso (mas me digam mesmo, se não é possivel usar o NOW() como default, sei lá, pode existir outra maneira.

 

Voltando as dicas que encontrei, haviam Triggers.

 

Li uma maneira que eu poderia usar o timestamp como default no campo, e depois fazer uma Trigger puxar o valor e dar um update como NOW(); confesso que achei um pouco complexo fazer tudo isso, e entao pesquisando mais um pouco e resolvi fazer uma Trigger para apenas aplicar o NOW() no campo que eu queria, sem deixar nada como default. segue a Trigger que estou usando:

 

CREATE TRIGGER addDataRegistro BEFORE INSERT ON clienteFOR EACH ROW BEGINSET NEW.dataRegistro = NOW();END

Agora, preciso saber se existe maneiras mais praticas, ou outras lógicas para fazer isso..

E também, se alguem souber uma boa referencia sobre o uso de triggers (fora o mysql.com, dev e afins q foi onde fiz minhas pesquisas) falando de como e quando usar, tenho essa curiosidade e vontade de entender melhor!

 

Valew galera!

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode usar, por exemplo, trigger para calcular valores em outros campos, deixar campos com letras maiúsculas, validar, por exemplo M ou F para campo sexo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal walace, gostei das ideiasUma duvida:Eu posso usar umas mesma Trigger para varias tabelas?tipo colocar ali no "ON cliente" , usar assim: "ON cliente, fornecedor, compra" ?Outra coisa: quando eu exporto o banco de dados, as triggers são mantidas junto com as tabelas?ou preciso salva-las de outra maneira? duvida de iniciante mexendo em triggers!Valew! :-)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ow,Em alguma versão do MYSQL é suportado um valor default (NOW) para campos do tipo: DATETIME?E o MYSQL sempre vai guardar no formato norte-americano: YYYY-MM-DD HH:NN:SS ?Isto é, não do formato Brasileiro: DD-MM-AAAA HH:NN:SS

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eh realmente esse negocio de não poder usar now() como default eh uma m***** neh bom na minha sp de inserção eu passo now() no insertnunca pensei em fazer uma trigger pa isso ehehhee sobre o formato tb não li ainda nada que demonstrasse como mudar o formato e agente tem q sofrer p/ ficar convertendo neh uhahuahu

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.