Why is unique constraint needed for upsert?

From: Seamus Abshere <seamus(at)abshere(dot)net>
To: pgsql-general(at)postgresql(dot)org
Subject: Why is unique constraint needed for upsert?
Date: 2014-07-23 17:21:11
Message-ID: 53CFEF07.3060607@abshere.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

hi all,

Upsert is usually defined [1] in reference to a violating a unique key:

> Insert, if unique constraint violation then update; or update, if not found then insert.

Is this theoretically preferable to just looking for a row that matches
certain criteria, updating it if found or inserting otherwise?

For an example of the latter approach, see MongoDB's flavor of upsert
[2]. You just give it a "query" and an "update". It seems to me this is
better because it functions correctly whether or not an index is in place.

Best, thanks,
Seamus

[1]
http://postgresql.uservoice.com/forums/21853-general/suggestions/245202-merge-upsert-replace
[2] http://docs.mongodb.org/manual/reference/method/db.collection.update/

--
Seamus Abshere, SCEA
https://github.com/seamusabshere

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Kalai R 2014-07-23 17:30:58 Re:
Previous Message Ramesh T 2014-07-23 16:12:30 tab_to_sting