"UPDATE table_name SET w = $1, x = $2, z = $4 WHERE y = $3 RETURNING *",
does not do the same as
"UPDATE table_name SET w = $1, x = $2, y = $3, z = $4 RETURNING *",
It's 2 am and my mind blanked out the WHERE, and just wanted the numbers neatly in order of 1234.
idiot.
FML.
I have done this too. Shit happens.
One of my co-workers used to write
UPDATE
statements backwards limit then where etc, to prevent this stuff, feels like a bit of a faff to me.I always write it as a select, before turning it into a delete or update. I have burned myself too often already.
Oh I did that like a year ago.
And then last night had an error that led me back near this code and stupidly thought "hey it'd look neater if those numbers were in order"
^ this is a very good tip that ive been using myself too