Olá,

Por que suas funções estão retornando NULL, elas deveriam retornar NEW não?

2009/8/25 Grupo Bio Soja - Carlos Eduardo Rodrigues Gonçalves <
carlosgoncal...@biosoja.com.br>

> 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 <joao.co...@serpro.gov.br>
>
>>  trigger meu jovem, da uma olhada em plpgsql e triggers
>>
>>
>> Em 25/08/2009 às 16:43 horas, pgbr-ge...@listas.postgresql.org.brescreveu:
>>
>> 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 <fabriziome...@gmail.com>
>>
>>>
>>> 2009/8/25 Grupo Bio Soja - Carlos Eduardo Rodrigues Gonçalves <
>>> carlosgoncal...@biosoja.com.br>
>>>
>>>> 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
>>> pgbr-geral@listas.postgresql.org.br
>>>  <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
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>

[]s
-- 
JotaComm
http://jotacomm.wordpress.com
http://www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a