Transaksi — SQL

Transaksi memastikan serangkaian operasi database berhasil SEMUA atau GAGAL SEMUA — tidak ada setengah-setengah. Contoh masalah tanpa transaksi: Transfer uang d

Transaksi memastikan serangkaian operasi database berhasil SEMUA atau GAGAL SEMUA — tidak ada setengah-setengah.

Contoh masalah tanpa transaksi: Transfer uang dari akun A ke akun B:

  1. Kurangi saldo A → ✅ berhasil
  2. Tambah saldo B → ❌ error! Server crash!

Hasilnya: uang hilang dari A tapi tidak masuk ke B!

Solusi: Transaksi

BEGIN TRANSACTION;

UPDATE accounts SET balance = balance - 100000 WHERE id = 1;
UPDATE accounts SET balance = balance + 100000 WHERE id = 2;

COMMIT;  -- Simpan perubahan (kedua operasi berhasil)

Jika ada error:

BEGIN TRANSACTION;

UPDATE accounts SET balance = balance - 100000 WHERE id = 1;
-- Terjadi error di sini!

ROLLBACK;  -- Batalkan semua perubahan (saldo A kembali seperti semula)

ACID properties:

Yang akan kamu pelajari