Puxa sabia que existia outras formas.

Uma pergunta, o CREATE RULE estará funcionando como um "DEFAULT" para
o campo no disparo da inserção??

Se eu informar um id diferente, ele não vai sobregravar?? (só para confirmar)

-- 
[]s
Nilson Chagas - Ubuntu User 25794
---
Visite:
http://www.avozdoevangelho.com.br -> Peça gratuitamente um curso Bíblico
Twitter: avozdoevangelho
http://www.amados.com.br
http://bbnradio.org -> Ouça a rádio e faça gratuitamente um Curso
Biblico On-Line




2009/8/14 JotaComm <jota.c...@gmail.com>:
> Olá,
>
> Pensei na seguinte solução. Veja se atende a sua solução:
>
> CREATE RULE rule_exemplo AS ON INSERT TO usuario DO UPDATE usuario SET
> per_id=perfil.per_id FROM perfil WHERE perfil.per_desc='Usuario';
>
> Exemplo de utilização:
>
> INSERT INTO usuario(usu_id,usu_usename) VALUES (1,'JP');
>
> Ao realizar este INSERT automaticamente o campo per_id da tabela usuario é
> preenchido com per_id da tabela perfil onde a condição é per_desc='Usuario'.
>
>
> 2009/8/14 Nilson Chagas <nilson.chagas.si...@gmail.com>
>>
>> O Fabrizio já respondeu e provavelmente dará certo (testarei assim que
>> chegar em casa).
>>
>> Mas como vc perguntou do objetivo é o seguinte:
>>
>> Tabela perfil
>> Campos per_id, per_descr
>>
>> Tabela usuario
>> Campos usu_id, usu_username, per_id
>>
>> Na tabela perfil tenho um registro cuja descrição é "Usuário"
>>
>> Sempre que incluir um novo registro na tabela usuario, o campo per_id
>> da tabela deverá ser preenchido com o valor do campo per_id da tabela
>> perfil, cuso per_descr seja igual a "Usuário"
>>
>> --
>> []s
>> Nilson Chagas - Ubuntu User 25794
>> ---
>> Visite:
>> http://www.avozdoevangelho.com.br -> Peça gratuitamente um curso Bíblico
>> Twitter: avozdoevangelho
>> http://www.amados.com.br
>> http://bbnradio.org -> Ouça a rádio e faça gratuitamente um Curso
>> Biblico On-Line
>>
>>
>> 2009/8/13 JotaComm <jota.c...@gmail.com>:
>> > Olá, Nilson
>> >
>> > Fiquei um pouco confuso. Você poderia discorrer um pouco mais sobre qual
>> > o
>> > seu objetivo com esta função?
>> >
>> > 2009/8/13 Nilson Chagas <nilson.chagas.si...@gmail.com>
>> >>
>> >> Pessoal,
>> >>
>> >> Não sou dba, e estou apenas gatinhando no postgresql.
>> >>
>> >> Preciso de uma trigger no before insert da tabela (ou talvez alguém
>> >> tenha até uma outra solução).
>> >>
>> >> Estou tentando algo assim:
>> >>
>> >> CREATE OR REPLACE FUNCTION fc_perfil_usuario()
>> >>  RETURNS "trigger" AS
>> >> $BODY$begin
>> >>
>> >>        -- verifica se o campo per_id é nulo
>> >>        IF NEW.per_id IS NULL THEN
>> >>                -- busca o id na tabela perfil
>> >>                SELECT per_id into perfil FROM perfil where per_descr =
>> >> 'Usuário';
>> >>        END IF;
>> >>
>> >>       -- campo per_id da tabela usuário
>> >>        NEW.per_id := perfil;
>> >>
>> >>
>> >> RETURN NEW;
>> >>
>> >> end$BODY$
>> >>  LANGUAGE 'plpgsql' VOLATILE;
>> >> COMMENT ON FUNCTION fc_perfil_usuario() IS 'Se o campo perfil do
>> >> usuario estiver nulo a função busca o id da descrição usuario';
>> >>
>> >>
>> >> Qual é a maneira correta de se fazer isto??
>> >>
>> >> --
>> >> []s
>> >> Nilson Chagas - Ubuntu User 25794
>> >> ---
>> >> Visite:
>> >> http://www.avozdoevangelho.com.br -> Peça gratuitamente um curso
>> >> Bíblico
>> >> Twitter: avozdoevangelho
>> >> http://www.amados.com.br
>> >> http://bbnradio.org -> Ouça a rádio e faça gratuitamente um Curso
>> >> Biblico On-Line
>> >> _______________________________________________
>> >> 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
>> >
>> >
>> _______________________________________________
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
> Espero ter ajudado.
>
> []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
>
>
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a