Serverless MySQL v1.5.0 is a maintenance/security update that also adds a new feature to transaction handling allowing you to return null
queries to simplify conditional transaction workflows.
Simplified Conditional Transactions
You can now return a null
or empty response from .query()
calls within a transaction. This lets you perform conditional transactions like this:
1 2 3 4 5 6 7 8 9 10 11 |
let results = await mysql.transaction() .query('DELETE FROM table WHERE id = ?', [someVar]) .query((r) => { if (r.affectedRows > 0) { ['UPDATE anotherTable SET x = 1 WHERE id = ?', [someVar]] } else { return null } }) .rollback(e => { /* do something with the error */ }) // optional .commit() // execute the queries |
If the record to DELETE
doesn’t exist, the UPDATE
will not be performed. If the UPDATE
fails, the DELETE
will be rolled back.
Feedback and contributions are always welcome on GitHub.
Updates include:
- Add support for empty queries in transactions c733279
- Add InnoDB note to README 6a80cc7
- Add documentation for null transaction queries 3de167a
- Lodash (dev dependency) version update (npm vulnerabilities) ae58d16
- Add files directive to package.json for smaller NPM module size 60df2b4
Check out the Serverless MySQL NPM module to see how simple it is to manage MySQL at Serverless Scale.
NPM: https://www.npmjs.com/package/serverless-mysql
GitHub: https://github.com/jeremydaly/serverless-mysql
Did you like this post? 👍 Do you want more? 🙌 Follow me on Twitter or check out some of the projects I’m working on.
Learn more about Serverless MySQL or check out the other projects I'm working on.