[firebase-br] Garantir uso de Trigger

Gladiston Santana gladiston em vidy.com.br
Ter Nov 13 09:06:20 -03 2018


Para a forma como criou a trigger tenho uma sugestão:
CREATE TABLE  ITENS  (
     ORDEM     BIGINT  GENERATED BY DEFAULT AS IDENTITY ,
(...)
    DATAHORA   CURRENT_TIMESTAMP  DEFAULT  NOT NULL,
    USUARIO VARCHAR(32) DEFAULT CURRENT_USER NOT NULL
);

Isso tornaria sua trigger inoqua ou desnecessária, já que pelo que entendi
você está preocupado que ao inserir tenha uma sequencia no campo ORDEM  e
um valor para DATAHORA.
Agora, no seu INSERT apenas deixe de mencionar esses 3 campos(ORDEM     ,
DATAHORA     ,  USUARIO   ) e eles assumirão o DEFAULT.

No update use:
UPDATE ITENS SET
(...)
    DATAHORA=CURRENT_TIMESTAMP ,
    USUARIO=CURRENT_USER
WHERE ( ORDEM  =xxxx)

Para que as atualizações os campos acima sejam atualizados também.
Use triggers com muito cuiidado, pois eles podem tornar a manutibilidade do
banco um desastre especialmente quando usam referencias cruzadas disparando
outras triggers.


Em qui, 8 de nov de 2018 às 12:43, rodrigo <firebase em dominioinf.com.br>
escreveu:

> Boa tarde a todos
>
> Tenho essa trigger que me ajuda a manter um controle de estoque por
> movimentação
>
> CREATE TRIGGER TR_ORDEM_ITENS FOR ITENS
> ACTIVE BEFORE INSERT POSITION 0
> AS
> BEGIN
> NEW.ORDEM = GEN_ID(GEN_ORDEM, 1);
> NEW.DATAHORA=CURRENT_TIMESTAMP;
> END
> ;
>
>
> Pela teoria, teria que preencher esses dois dados assim que executado um
> insert.
>
> Mas avaliando um erro na soma do estoque, percebi que esses campos que
> Deveriam ser preenchidos por essa trigger, estão nulos.
>
> Estou fazendo algo errado com essa trigger? Tem como garantir a execução.
>
> Grato
>
>
>
>
>
> ---
> Este email foi escaneado pelo Avast antivírus.
> https://www.avast.com/antivirus
> ______________________________________________
> 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://www.firebase.com.br/pesquisa_lista.html
>


-- 
A Vidy possui um Sistema de Gestão da Qualidade estruturado e com
Certificação ISO 9001 há mais de 10 anos, mantendo seu foco na Qualidade e
na Melhoria Continua.

Em março de2018 migramos com sucesso para a nova versão da ISO 9001.

Somos a única Empresa Brasileira de Engenharia de Laboratórios com
certificação com o Escopo Completo; desde Projetos, Engenharia, Construção,
Fabricação e Instalação de Laboratórios.



Mais detalhes sobre a lista de discussão lista