Em 10/10/2011 20:08, Tiago Adami escreveu: > Ok, mas imagine que há outra aplicação conectada ao banco de dados e > insere um registro. Como o aplicativo (persistência) saberá que o > objeto existe no banco, mas não na memória?
Isto é uma limitação da sua aplicação, linguagem, ou de sua escolha do ORM. Veja esta query que meu ORM SqlAlchemy gera e que eu postei em mensagem imediatamente anterior: insert into clientes(chaveprimaria, cliente) values(nextval('chaveprimaria'), ?) returning chaveprimaria; Não importa de onde venha a inclusão, nunca haverá repetição de chave primária nem erro na inserção pois o próprio PostgreSql retornará um inteiro com o valor da sequence utilizado para persistir o objeto. > Certa vez já tive que fazer _quase_ isso para simular o comando > "MERGE" de outro SGBD, e não tive outra opção a não ser criar um > programa que tentasse inserir, e no caso de violação da PK tratava o > erro em código fazia um UPDATE. Merge de um SGDB? Qual SGDB faz merge e como funciona isso? Está falando de juntar os dados de dois bancos de dados em um único? O que isto tem haver com ORM? Abraço, -- Shander Lyrio http://about.me/shander _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral