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