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
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral