September 12, 2024 nodejs
Cara Melakukan Database Transaction Di Nodejs Mysql2
Transaksi adalah cara untuk melakukan beberapa operasi database dalam satu rangkaian yang semua perubahan pada rangkaian tersebut bisa disimpan atau dibatalkan.
mysql2 merupakan salah satu library client mysql di nodejs.
Di mysql2, transaksi dapat dilakukan dengan 3 method:
beginTransaction
untuk memulai transaksi.commit
untuk melakukan menyimpan perubahan.rollback
untuk membatalkan perubahan.
Contoh.
try {
await db.beginTransaction()
const payload = {
userId: 1,
amount: 50000
}
await db.query(
'insert into transactions (user_id, amount) values (?, ?)',
[payload.userId, payload.amount]
)
await db.query(
'update users set balance = balance + ? where id = ?',
[payload.amount, payload.userId]
)
await db.commit()
} catch (err) {
await db.rollback()
throw err
}
Dengan menggunakan transaksi, jika terjadi error di rangkaian operasi maka semua perubahannya akan dibatalkan (rollback), jika tidak terjadi error maka semua perubahannya akan disimpan (commit).