eu tenho tentando fazer com trigger mais nao estou conseguindo fazer ele
inserir so os dados pertinentes a tabela... o exemplo que encontrei
CREATE FUNCTION adicionarpessoa() RETURNS "trigger"
AS $$
begin
insert into tbPessoa (cdPessoa, tpPessoa, nmPessoa, cpf, dtNascimento)
values (new.cdPessoa, new.tpPessoa, new.nmPessoa, new.cpf,
new.dtNascimento);
return null;
end;
$$
LANGUAGE plpgsql;
-------------------------------------------------------------------------------
CREATE FUNCTION atualizarpessoa() RETURNS "trigger"
AS $$
begin
update tbPessoa set
tpPessoa = new.tpPessoa,
nmPessoa = new.nmPessoa,
cpf = new.cpf,
dtNascimento = new.dtNascimento
where cdPessoa = old.cdPessoa;
return null;
end;
$$
LANGUAGE plpgsql;
-------------------------------------------------------------------------------
CREATE FUNCTION removerpessoa() RETURNS "trigger"
AS $$
begin
delete from tbPessoa where cdPessoa = old.cdPessoa;
return null;
end;
$$
LANGUAGE plpgsql;
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- SEQUENCE
-------------------------------------------------------------------------------
CREATE SEQUENCE tbpessoa_cdpessoa_seq
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- TABLES
-------------------------------------------------------------------------------
CREATE TABLE tbpessoa (
cdpessoa integer NOT NULL,
nmpessoa character varying(50),
tppessoa integer,
cpf character varying(20),
dtnascimento date
);
ALTER TABLE ONLY tbpessoa
ADD CONSTRAINT pk_tbpessoa PRIMARY KEY (cdpessoa);
-------------------------------------------------------------------------------
CREATE TABLE tbaluno (
cdpessoa integer DEFAULT nextval('tbpessoa_cdpessoa_seq'::regclass) NOT
NULL,
nmpessoa character varying(50),
tppessoa integer DEFAULT 0,
matricula character varying(20),
cpf character varying(20),
dtnascimento date
);
ALTER TABLE ONLY tbaluno
ADD CONSTRAINT pk_tbaluno PRIMARY KEY (cdpessoa);
CREATE TRIGGER tgadicionarpessoa
AFTER INSERT ON tbaluno
FOR EACH ROW
EXECUTE PROCEDURE adicionarpessoa();
CREATE TRIGGER tgatualizarpessoa
AFTER UPDATE ON tbaluno
FOR EACH ROW
EXECUTE PROCEDURE atualizarpessoa();
CREATE TRIGGER tgremoverpessoa
AFTER DELETE ON tbaluno
FOR EACH ROW
EXECUTE PROCEDURE removerpessoa();
esse exemplo e quase que eu quero... so que pra ele funcionar no caso a
tabela aluno tem que ter os mesmos campos e eu nao queria isso.. quem puder
me ajudar por favor... to comecando agora a programar.
2009/8/25 Joao Cosme de Oliveira Junior <[email protected]>
> trigger meu jovem, da uma olhada em plpgsql e triggers
>
>
> Em 25/08/2009 às 16:43 horas, [email protected]:
>
> Entaum eu estava vendo sobre linguagem procedural.. vi ate um exemplo que
> faz isso so que de uma maneira quase heranca, so que fica redudancia de
> dados... os mesmo campos que tem na tabela pessoa tem que ter em cliente
> para funcionar... gostaria se teria outro jeito de fazer ow se tenho que
> mudar a modelagem de dados...
>
> 2009/8/25 Fabrízio de Royes Mello <[email protected]>
>
>>
>> 2009/8/25 Grupo Bio Soja - Carlos Eduardo Rodrigues Gonçalves <
>> [email protected]>
>>
>>> Gostaria de saber se tem como montar funcoes para insercao de dados,
>>> alteracao e exclusao.
>>> Tenho uma tabela pessoa e uma tabela cliente onde a mesma possui
>>> id_pessoa... estou utilizando php para enviar informacoes para o banco
>>> gostaria de cadastrar ao mesmo tempo os campos pertinentes a pessoa e os
>>> campos pertinetes a cliente.. se alguem tiver um tutorial ou um link que eu
>>> possa ler... pois ja revirei a net.... muito obrigado a todos
>>>
>>>
>> Podes começar a dar uma olhada em [1] e [2] e se tiveres dúvidas entre
>> novamente em contato que ajudaremos no que for possível:
>>
>> [1]
>> <http://www.postgresql.org/docs/8.4/interactive/server-programming.html>
>> http://www.postgresql.org/docs/8.4/interactive/server-programming.html
>> [2] <http://www.postgresql.org/docs/8.4/interactive/plpgsql.html>
>> http://www.postgresql.org/docs/8.4/interactive/plpgsql.html
>>
>>
>> --
>> Fabrízio de Royes Mello
>> >> Blog sobre PostgreSQL: <http://fabriziomello.blogspot.com>
>> http://fabriziomello.blogspot.com
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>> <https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral>
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
>
> "Esta mensagem do SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO),
> empresa pública federal regida pelo disposto na Lei Federal nº 5.615, é
> enviada exclusivamente a seu destinatário e pode conter informações
> confidenciais, protegidas por sigilo profissional. Sua utilização
> desautorizada é ilegal e sujeita o infrator às penas da lei. Se você a
> recebeu indevidamente, queira, por gentileza, reenviá-la ao emitente,
> esclarecendo o equívoco."
>
> "This message from SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO) -- a
> government company established under Brazilian law (5.615/70) -- is directed
> exclusively to its addressee and may contain confidential data, protected
> under professional secrecy rules. Its unauthorized use is illegal and may
> subject the transgressor to the law's penalties. If you're not the addressee,
> please send it back, elucidating the failure."
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral