[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