Em 12 de julho de 2013 12:07, Flavio Henrique Araque Gurgel < [email protected]> escreveu:
> Osvaldo, >> foi meu primeiro teste tinha feito assim: >> >> create or replace rule protect_double as >> on INSERT to test >> where exists ( >> select 1 from dah.test res >> where new.tipoacesso='R' and new.numero=res.numero) >> do instead select erroDouble(); >> > > Eu recomendo um gatilho (trigger) do tipo BEFORE INSERT que permite que > você faça uma função bem mais elaborada do que uma regra. > > []s > > ______________________________**____ > Flavio Henrique A. Gurgel > Líder de Projetos Especiais > Consultoria, Projetos & Treinamentos 4LINUX > Tel1: +55-11.2125-4747 ou 2125-4748 > www.4linux.com.br > email: [email protected] > ______________________________ > FREE SOFTWARE SOLUTIONS > > ______________________________**_________________ > pgbr-geral mailing list > [email protected].**org.br<[email protected]> > https://listas.postgresql.org.**br/cgi-bin/mailman/listinfo/**pgbr-geral<https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral> > Flavio obrigado pela resposta, pois é ja estava pensando nisso. o estranho que estou segundo até um exemplo da internet. CREATE OR REPLACE RULE db_table_ignore_duplicate_inserts AS ON INSERT TO insert_test WHERE EXISTS ( SELECT 1 FROM insert_test WHERE id = NEW.id ) DO INSTEAD NOTHING; A unica diferença é que tenho 2 comparações no where, e pelos testes ele sempre valida a primeira new.tipoacesso='R' e a segunda que é um and new.numero=res.numero mesmo sendo falsa ele ignora, -- Douglas Fabiano Specht
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
