[firebase-br] triggers para Atualização de Campo

MAURICIO COSTA maximmumsistemas em gmail.com
Qua Ago 29 01:18:22 -03 2012


Pronto achoque isso deva resolver seu problema.
Cria em um banco de dados de exemplo e nele cria as duas tabelas que segue
abaixo.
Cadastre um item na tabela produtos e veja o que ocorre na tabela
produtos1, depois altere o preço na tabela produtos e veja o que acontece
na tabela produtos1.

CREATE TABLE PRODUTOS (
    IDCODIGO         INTEGER NOT NULL,
    DESCRICAO        VARCHAR(20),
    QTDE_ESTOQUE     NUMERIC(18,3),
    DATA_INVENTARIO  DATE,
    VALOR            NUMERIC(18,2)
);

CREATE TABLE PRODUTOS1 (
    IDPRODUTO  INTEGER NOT NULL,
    VALOR      NUMERIC(18,3)
);

ALTER TABLE PRODUTOS ADD CONSTRAINT PK_PRODUTOS PRIMARY KEY (IDCODIGO);


ALTER TABLE PRODUTOS1 ADD CONSTRAINT FK_PRODUTOS1_1 FOREIGN KEY (IDPRODUTO)
REFERENCES PRODUTOS (IDCODIGO) ON DELETE CASCADE ON UPDATE CASCADE;

CREATE OR ALTER TRIGGER PRODUTOS_AI0 FOR PRODUTOS
ACTIVE AFTER INSERT POSITION 0
AS
begin
 if (new.idcodigo is not null) then
 begin
   insert into produtos1 (idproduto, valor) values (new.idcodigo,
new.valor);
 end
end


CREATE OR ALTER TRIGGER PRODUTOS_BU0 FOR PRODUTOS
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
 if (new.valor <> old.valor) then
 begin
   update produtos1 set valor = new.valor
   where idproduto = old.idcodigo;
 end
end

Qualquer dúvida entra em contato.
Maurício R. Costa.

Em 29 de agosto de 2012 01:05, MAURICIO COSTA
<maximmumsistemas em gmail.com>escreveu:

> Quer que te mante um exemplo agora. Aguarda um pouco aí que irei fazer.
>
> Em 29 de agosto de 2012 00:34, Eduardo Belo <beloelogica em gmail.com>escreveu:
>
> SET TERM ^ ;
>>
>> /* Inserir, Atualizar e Deletar */
>>
>> CREATE OR ALTER TRIGGER TRG_ATUALIZA_PRODUTOS1 FOR PRODUTOS
>> ACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 0
>> AS
>> BEGIN
>>  IF (INSERTING) THEN
>>  BEGIN
>>   INSERT INTO PRODUTOS1 (PRODUTOS1.ID, PRODUTOS1.VALOR)
>>   VALUES (NEW.ID, NEW.VALOR);
>>  END
>>  IF (UPDATING) THEN
>>  BEGIN
>>   UPDATE PRODUTOS1
>>   SET PRODUTOS1.ID = NEW.ID,  PRODUTOS1.VALOR = NEW.VALOR
>>   WHERE PRODUTOS1.ID = OLD.ID;
>>  END
>>  IF (DELETING) THEN
>>  BEGIN
>>  DELETE FROM PRODUTOS1 WHERE PRODUTOS1.ID = OLD.ID;
>>  END
>> END
>> ^
>>
>>
>> SET TERM ; ^
>>
>>
>> Em 27 de agosto de 2012 22:13, Guto & Michellane Araújo <
>> gutogleberty em gmail.com> escreveu:
>>
>> > Boa noite, alguem sabe fazer uma trigger para o exemplo abaixo:
>> >
>> > Tabela Produtos
>> > Campos ID,Valor
>> >
>> > Tabela Produtos1
>> > Campos ID,Valor
>> >
>> > queria uma trigger de update para quando o campo valor da tabela
>> produtos
>> > for alterado alterar tambem na tabelas produtos1 atraves do id.
>> > ______________________________________________
>> > 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