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.