The following bug has been logged online:

Bug reference:      3910
Logged by:          Dmitry Afanasiev
Email address:      [EMAIL PROTECTED]
PostgreSQL version: 7.4.19
Operating system:   FreeBSD 7.0 / 5.5
Description:        Incorrect behavior of UPDATE statement on tables with
constraints UNIQUE/PRIMARY KEY
Details: 

Constraints must be checked AFTER updating ALL of rows, but really after
every row.
For illustrate try this simple sql script:
CREATE TABLE n(n INTEGER PRIMARY KEY);
INSERT INTO n VALUES(1);
INSERT INTO n VALUES(2);
INSERT INTO n VALUES(3);
UPDATE n SET n = n + 1;
SELECT * FROM n;
DROP TABLE n;

On UPDATE psql says about violation UNIQUE constraint and does't update
anything.
For example, in Oracle all works propertly, and result of SELECT is:
SQL> select * from n;   

         N
----------
         2
         3
         4

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to