Lazaro Ruben Garcia Martinez escribió:
> Buenos días a todos en la lista.
> 
> Existe algún soporte en PostgreSQL para hacer uso de la funcionalidad 
> MERGE/UPSERT?
> 
> En caso de no existir una implementación utilizando CTE, podría ser factible 
> como la siguiente:

No.  Dos transacciones concurrentes haciendo lo mismo terminarían mal.
Realmente, la única forma de hacerlo es con un EXCEPTION en plpgsql que
intente un insert y si falla haga un update (o bien usando SAVEPOINTs y
ejecutando lo mismo directamente en vez de usar plpgsql).

Está en diseño una nueva forma de lidiar con este problema, que es algo
como INSERT..ON DUPLICATE KEY LOCK FOR UPDATE; puedes ver la (muy larga)
discusión en 
http://www.postgresql.org/message-id/cam3swzthwrktvurf1awaih8qthgnmzafydcnw8qju7pqhk5...@mail.gmail.com

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a