Lewati ke konten utama

Transaksi di PostgreSQL

Pengantar

Transaksi dalam PostgreSQL adalah satu unit kerja yang terdiri dari satu atau lebih pernyataan SQL yang dijalankan secara atomik. Ini berarti bahwa semua pernyataan dalam transaksi harus berhasil, atau tidak ada yang dijalankan sama sekali (rollback).

Memulai Transaksi

Untuk memulai transaksi, gunakan perintah berikut:

BEGIN;

Commit dan Rollback

  • COMMIT: Menyimpan semua perubahan yang dilakukan dalam transaksi.
  • ROLLBACK: Membatalkan semua perubahan jika terjadi kesalahan.

Contoh Penggunaan

BEGIN;
UPDATE akun SET saldo = saldo - 10000 WHERE id = 1;
UPDATE akun SET saldo = saldo + 10000 WHERE id = 2;
COMMIT;

Jika terjadi kesalahan selama transaksi, kita bisa membatalkan perubahan menggunakan:

ROLLBACK;

Savepoint

Savepoint memungkinkan rollback sebagian dalam transaksi.

BEGIN;
UPDATE produk SET stok = stok - 5 WHERE id = 10;
SAVEPOINT sebelum_diskon;
UPDATE produk SET harga = harga * 0.9 WHERE id = 10;
ROLLBACK TO sebelum_diskon;
COMMIT;

Kesimpulan

Transaksi sangat berguna untuk menjaga konsistensi data dan mencegah kesalahan saat memproses banyak perubahan dalam database PostgreSQL.