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

    • elvith@feddit.de
      link
      fedilink
      arrow-up
      0
      ·
      11 months ago

      Everyone has a production system. Some may even have a separate testing environment!

      • sim642@lemm.ee
        link
        fedilink
        arrow-up
        0
        ·
        11 months ago

        Transactions aren’t backups. You can just as easily commit before fully realizing it. Backups, backups, backups.

        • elvith@feddit.de
          link
          fedilink
          arrow-up
          0
          ·
          11 months ago

          Yes, but

          1. Begin transaction
          2. Update table set x=‘oopsie’
          3. Sees 42096 rows affected
          4. Rollback

          Can prevent a restore, whereas doing the update with auto commit guarantees a restore on (mostly) every error you make

        • Caveman@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          edit-2
          11 months ago

          No, but people are sometimes forced to do these things because of pressure from management and/or lack of infrastructure to do it in any other way.

          Definitely don’t endorse it but I have done it. Think of a “Everything is down” situation that can be fixed in 1 minute with SQL.