Lewati ke konten utama

Transactions di MySQL

Transaksi dalam MySQL memungkinkan pengguna untuk mengelompokkan beberapa operasi SQL menjadi satu unit kerja. Jika salah satu operasi gagal, maka semua perubahan dapat dibatalkan (rollback), sehingga menjaga integritas data.

Konsep Transaksi

Transaksi dalam MySQL mengikuti prinsip ACID:

  • Atomicity: Semua operasi dalam transaksi harus berhasil atau dibatalkan sepenuhnya.
  • Consistency: Database harus tetap dalam keadaan konsisten sebelum dan sesudah transaksi.
  • Isolation: Transaksi harus dijalankan secara independen tanpa dipengaruhi transaksi lain.
  • Durability: Hasil transaksi yang berhasil harus disimpan secara permanen.

Perintah Dasar Transaksi

MySQL menyediakan beberapa perintah utama untuk menangani transaksi:

  • START TRANSACTION: Memulai transaksi baru.
  • COMMIT: Menyimpan perubahan yang dilakukan dalam transaksi.
  • ROLLBACK: Membatalkan perubahan yang dilakukan dalam transaksi.
  • SAVEPOINT: Membuat titik penyimpanan dalam transaksi.
  • RELEASE SAVEPOINT: Menghapus savepoint tertentu.

Contoh Penggunaan Transaksi

Berikut adalah contoh implementasi transaksi dalam MySQL:

START TRANSACTION;

UPDATE akun SET saldo = saldo - 100000 WHERE id = 1;
UPDATE akun SET saldo = saldo + 100000 WHERE id = 2;

-- Jika kedua operasi berhasil, commit perubahan
COMMIT;

Jika terjadi kesalahan pada salah satu operasi, transaksi dapat dibatalkan:

START TRANSACTION;

UPDATE akun SET saldo = saldo - 100000 WHERE id = 1;
UPDATE akun SET saldo = saldo + 100000 WHERE id = 2;

-- Jika terjadi error, batalkan transaksi
ROLLBACK;

Kesimpulan

Menggunakan transaksi dalam MySQL sangat penting untuk menjaga konsistensi data, terutama dalam aplikasi yang membutuhkan operasi keuangan atau pengolahan data dalam jumlah besar.