[firebase-br] Old or new

José Mauricio Barbisan Zottis bzottis em ig.com.br
Ter Nov 5 17:03:34 -03 2013


Obrigado Walter, na verdade sei que old é o valor velho e new o valor
alterado, mas a situação é a seguinte;
tenho um replicador para um site
e tenho que monitorar alguns campos de algumas tabelas para ver se não
houve alteração, se tiver sido alterado ou inserido novo Cliente, por
exemplo, cadastro em uma outra tabela, e essa outra tabela é varrida e
replicada para o site, depois o registro é apagado da tabela de replicação.

então, a tabela cliente tem muitos campos, e o código para verificar se
houve alteração( if new.campo <> old.campo) seria gigantesco.

por isso pensei em fazer sempre o new, mas daí seria inserido somente
campos que tiveram alterações ou todos os campos?




2013/11/5 W O <sistemas2000profesional em gmail.com>

> Las pseudo variables OLD y NEW se utilizan solamente dentro de los
> triggers. Te permiten conocer cual era el valor "antes" de la actualización
> y el valor actual, el que se quiere guardar.
>
> En tu INSERT solamente es obligatorio especificar el valor de las columnas
> que están declaradas como NOT NULL. Las columnas que pueden contener NULL
> no es necesario especificarlas (pero si no las especificas se guardará NULL
> en ellas).
>
> No necesitas verificar que una columna haya cambiado su valor para
> guardarla. Siempre lo que se guardará será el contenido de la
> pseudovariable NEW
>
> O sea que escribir dentro de un trigger:
> INSERT INTO MiTabla (Columna1, Columna2, Columna3) VALUES (NEW.Columna1,
> NEW.Columna2, NEW.Columna3)
>
> es perfectamente válido.
>
> Desde luego que "MiTabla" es otra tabla, no la que corresponde al trigger.
>
> Saludos.
>
> Walter.
>
>
>
>
>
> 2013/11/5 José Mauricio Barbisan Zottis <bzottis em ig.com.br>
>
> > Pessoal, to com uma dúvida boba, mas surgiu....
> >
> > Preciso cadastrar em uma outra tabela o cliente que sofreu
> alteração(Quase
> > todos os campos)
> >
> > é preciso fazer a distinção entre o new e o old para pegar o valor ou
> posso
> > colocar ctudo como new/
> >
> > exemplo;
> > Consideremos que o campo razao_social não foi alterado e o campo
> > Nome_fantasia foi. Poderia fazer direto assim:
> >
> > insert into clientes(cod_cliente, Razao_social,
> > nome_fantasia)values(new.cod_cliente, new.razao_social,
> new.nome_fantasia)
> > pois senão precisarei fazer a verificação de um monte de campos.
> >
> > obrigado
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista