Em 20 de julho de 2013 20:30, Danilo Silva <danilo.dsg.go...@gmail.com> escreveu: > Pessoal, > > Tenho uma tabela de cadastro de faixas de ceps > (cliente,cepinicial,cepfinal), onde não é permitido duplicidade de faixas > para o mesmo cliente e que uma faixa fique dentro de outra, exemplo: > > Correto > codigo | cliente | cepinicial | cepfinal > --------+---------+------------+---------- > 1 | 1 | 01000000 | 01599999 > 2 | 1 | 02000000 | 02999999 > 3 | 1 | 03000000 | 04999999 > (3 rows) > > > Errado > codigo | cliente | cepinicial | cepfinal > --------+---------+------------+---------- > 1 | 1 | 01000000 | 01599999 > 2 | 1 | 02000000 | 02999999 > 3 | 1 | 02500000 | 04999999 > (3 rows) > > > Errado pois o cep 02500000 já existe dentro da faixa anterior. Atualmente eu > bloqueio o insert na aplicação e criei uma regra com *DO INSTEAD NOTHING* > para evitar a duplicidade. Qual a melhor forma de evitar esses tipos de > duplicidade, ou está certo da forma que está?
Bom mesmo para resolver este problema seria usar range datatype. Ele já faz isso automaticamente para você: http://www.postgresql.org/docs/current/static/rangetypes.html > > []s > Danilo > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > -- Atenciosamente, Fábio Telles Rodriguez blog: http://savepoint.blog.br e-mail / gtalk / MSN: fabio.tel...@gmail.com Skype: fabio_telles Timbira - A empresa brasileira de Postgres http://www.timbira.com.br _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral