| From: | Douglas McNaught <doug(at)mcnaught(dot)org> |
|---|---|
| To: | tony_caduto(at)amsoftwaredesign(dot)com |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: weirdness with the a sql update |
| Date: | 2005-08-04 14:41:36 |
| Message-ID: | m2fytplq73.fsf@Douglas-McNaughts-Powerbook.local |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Tony Caduto <tony_caduto(at)amsoftwaredesign(dot)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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Sven Willenberger | 2005-08-04 14:51:12 | Re: weirdness with the a sql update |
| Previous Message | Martijn van Oosterhout | 2005-08-04 14:35:28 | Re: weirdness with the a sql update |