How to do an UPDATE for all the fields that do NOT break a constraint?

From: Phoenix Kiula <phoenix(dot)kiula(at)gmail(dot)com>
To: PG-General Mailing List <pgsql-general(at)postgresql(dot)org>
Subject: How to do an UPDATE for all the fields that do NOT break a constraint?
Date: 2009-01-26 13:09:23
Message-ID: e373d31e0901260509v6e67f1ebx412a215d4849a823@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I wonder if this is an SQL limitation or something I'm missing in the
PG manual, but I need to run an update on my database (to replace the
value of a column to match a new design structure).

Due to the new business logic, the replaced value of a field may end
up being already present in the database in another record. This leads
to unique key violations when I run the update.

My question: I don't mind if the update transaction skips the records
where the key would be violated (this preservation is in fact what we
want) but these are only about 2% of the overall updatable records.

Is there anyway to make the transaction go through with the remaining
98% of the update SQL which will in fact NOT violate the unique
constraint?

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Matthias Karlsson 2009-01-26 13:45:02 Re: How to do an UPDATE for all the fields that do NOT break a constraint?
Previous Message Grzegorz Jaśkiewicz 2009-01-26 11:41:21 where (x, y, z) in ((x1, y1, z1), (x1, y1, z1), (x1, y1, z1), (x2, y2, z2)) (not) optimized