URGENT: undoing a mistake - Mailing list pgsql-admin

From Andrew Perrin
Subject URGENT: undoing a mistake
Date
Msg-id Pine.LNX.4.21.0210301550570.690-100000@perrin.socsci.unc.edu
Whole thread Raw
Responses Re: URGENT: undoing a mistake  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: URGENT: undoing a mistake  ("Alex J. Avriette" <avriettea@speakeasy.net>)
List pgsql-admin
Folks,

I just made a mistake that could be quite costly: I did this:

update writer_survey set partid='W41308' where survid in (select survid
from participants where partid='W41291' limit 1);

when I should have done this:

update writer_survey set partid='W41308' where survid in (select survid
from writer_survey where partid='W41291' limit 1);

Is there any way I can undo this, e.g., set partid back to what it was
before I ran this command? I know I should have done it in a transaction,
but I didn't.

More broadly, can someone explain why it worked? There is no survid column
in participants, so I would have expected it to generate an error on the
sub-select, not match all rows!

Thanks for any help.

----------------------------------------------------------------------
Andrew J Perrin - http://www.unc.edu/~aperrin
Assistant Professor of Sociology, U of North Carolina, Chapel Hill
clists@perrin.socsci.unc.edu * andrew_perrin (at) unc.edu



pgsql-admin by date:

Previous
From: Tom Lane
Date:
Subject: Re: Behaviour patterns on pgsql (7.1.3)
Next
From: "Josh Goldberg"
Date:
Subject: Re: Bit string manipulation in Postgresql