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