"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.

  • originalfrozenbanana
    link
    fedilink
    English
    arrow-up
    88
    ·
    9 months ago

    This doesn’t help you but may help others. I always run my updates and deletes as selects first, validate the results are what I want including their number and then change the select to delete, update, whatever

    • NOPper@lemmy.world
      link
      fedilink
      arrow-up
      23
      ·
      9 months ago

      I learned this one very early on in my career as a physical security engineer working with access control databases. You only do it to one customer ever. 🤷‍♂️

    • PeeGee
      link
      fedilink
      English
      arrow-up
      1
      ·
      9 months ago

      Same. I think it’s good to have a healthy fear/respect for updates and deletes and treat them as radioactive. Luckily by simply writing it as a select first we can easily see how many and which records will be affected.