Re: weirdness with the a sql update - Mailing list pgsql-general

From Douglas McNaught
Subject Re: weirdness with the a sql update
Date
Msg-id m2fytplq73.fsf@Douglas-McNaughts-Powerbook.local
Whole thread Raw
In response to weirdness with the a sql update  (Tony Caduto <tony_caduto@amsoftwaredesign.com>)
List pgsql-general
Tony Caduto <tony_caduto@amsoftwaredesign.com> writes:

> Hi,
>
> I just noticed this, if I do a update like this:
>
> update new_requests set name = 'tony' where request_id = 2
>
> If I do a select * from new_requests that record I just updated is now
> at the bottom , before the update it was at the top?
>
> Why is Postgresql changing the ordering of the results after a simple
> update?

Results are returned in an arbitrary order unless you supply an ORDER
BY clause in your query.

> It almost looks like the record is being dropped and then readded to
> the end.

Yup.  In Postgres, UPDATE == DELETE + INSERT, so the new row will very
likely go into a different place (this is so that existing
transactions can still see the old row before your transaction
commits).

-Doug

pgsql-general by date:

Previous
From: Martijn van Oosterhout
Date:
Subject: Re: weirdness with the a sql update
Next
From: Sven Willenberger
Date:
Subject: Re: weirdness with the a sql update