Olá, Nilson

2009/8/14 Nilson Chagas <[email protected]>

> Puxa sabia que existia outras formas.
>
> Uma pergunta, o CREATE RULE estará funcionando como um "DEFAULT" para
> o campo no disparo da inserção??


Sim. Toda inserção que estiver na tabela ele chama rule e executa o comando
UPDATE.

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


Irá gerar um nova entrada (linha) na tabela.

>
>
> --
> []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 <[email protected]>:
> > 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 <[email protected]>
> >>
> >> 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 <[email protected]>:
> >> > 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 <[email protected]>
> >> >>
> >> >> 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
> >> >> [email protected]
> >> >> 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
> >> > [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
> >
> > Espero ter ajudado.
> >
> > []s
> > --
> > JotaComm
> > http://jotacomm.wordpress.com
> > http://www.dextra.com.br/postgres
> >
> > _______________________________________________
> > 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
>


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

Responder a