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

  • @Blackmist@feddit.uk
    link
    fedilink
    English
    431 year ago

    You’re not the first. You won’t be the last. I’m just glad my DB of choice uses transactions by default, so I can see “rows updated: 3,258,123” and back the fuck out of it.

    I genuinely believe that UPDATE and DELETE without a WHERE clause should be considered a syntax error. If you want to do all rows for some reason, it should have been something like UPDATE table SET field=value ALL.

    • @drekly@lemmy.worldOP
      link
      fedilink
      English
      11 year ago

      Because I’m relatively new at this type of thing, how does that appear on the front end? I’m using a js/html front end and a jsnode backend. Would I just see a popup before I make any changes?

      • @Blackmist@feddit.uk
        link
        fedilink
        English
        21 year ago

        No idea. My tools connect directly to the DB server, rather than going though any web server shenanigans.

      • If you’re asking about the information about the number of rows, oracle db clients do that. For nodejs, oracle’s library will provide this number in the response to a dml statement execution. So you can retrieve it in your backend code. You have to write additional code to bring this message to the front-end.

        https://oracle.github.io/node-oracledb/

        • @drekly@lemmy.worldOP
          link
          fedilink
          English
          11 year ago

          Awesome, thanks for the info. Definitely super useful for debug mode whilst I’m fixing and tampering!