PostgreSQL - Transaksi: Panduan untuk Pemula

Hai teman-teman, para ahli basis data masa depan! Hari ini, kita akan meluncur ke dalam dunia magis transaksi PostgreSQL. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya – saya akan menjadi panduan ramah Anda dalam perjalanan ini. Pada akhir panduan ini, Anda akan dapat mengatur transaksi seperti seorang pro!

PostgreSQL - Transactions

Apa Itu Transaksi?

Sebelum kita masuk ke detilnya, mari kita pahami apa itu transaksi. Bayangkan Anda sedang mentransfer uang dari rekening bank satu ke rekening lain. Anda tentu tidak mau uang hilang dari satu rekening tanpa muncul di rekening lain, kan? Itulah tempat transaksi berguna. Mereka memastikan bahwa sebuah rangkaian operasi basis data baik saja keseluruhan berhasil atau keseluruhan gagal bersamaan. Itu seperti kesepakatan "semua atau tak satupun".

Kendali Transaksi

Sekarang, mari kita lihat bagaimana kita mengendalikan transaksi ini di PostgreSQL. Kita memiliki beberapa kata ajaib (perintah) yang tersedia:

Perintah Deskripsi
BEGIN Memulai transaksi baru
COMMIT Menyimpan semua perubahan yang dibuat dalam transaksi
ROLLBACK Mengembalikan semua perubahan yang dibuat dalam transaksi

Pertimbangkan perintah ini seperti lampu lalu lintas di jalan basis data kita. BEGIN adalah lampu hijau yang mengatakan "Jalan!", COMMIT adalah bendera kotak yang mencapai garis finish, dan ROLLBACK adalah lampu merah yang mengatakan "Ups, mari kita mulai dari awal!"

Perintah BEGIN

Mari kita mulai dengan perintah BEGIN. Itu seperti mengatakan "Baiklah PostgreSQL, perhatikan! Kita akan melakukan sesuatu yang penting."

BEGIN;
-- Operasi basis data Anda disini

Ketika Anda mengetik BEGIN, PostgreSQL siap untuk melacak semua perubahan yang Anda akan buat. Itu seperti membuka halaman baru di bukunya – semua yang Anda tulis sekarang akan menjadi bagian dari transaksi ini.

Perintah COMMIT

Berikutnya adalah teman kita COMMIT. Ini tempat magis terjadi!

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
COMMIT;

Dalam contoh ini, kita sedang mentransfer $100 dari rekening 1 ke rekening 2. COMMIT di akhir mengatakan ke PostgreSQL, "Oke, kita selesai disini. Buat perubahan ini tetap!" Itu seperti menekan tombol simpan di permainan video favorit Anda – kemajuan Anda sekarang terkunci.

Perintah ROLLBACK

Tapi apa jika ada kesalahan yang terjadi? Itulah tempat ROLLBACK datang ke penyelamat!

BEGIN;
UPDATE accounts SET balance = balance - 1000000 WHERE account_id = 1;
-- Ups! Kita tidak bermaksud untuk mentransfer jutaan dolar!
ROLLBACK;

ROLLBACK adalah seperti penghapus Anda. Itu menghapus semua perubahan yang Anda buat sejak terakhir BEGIN. Dalam kasus ini, kita secara tak sengaja mencoba untuk mentransfer jutaan dolar (berapa bagusnya itu?), tapi ROLLBACK menyelamatkan kita dari pelanggan yang marah dan mungkin kehilangan pekerjaan!

Contoh Dunia Nyata

Mari kita gabungkan semua ini dengan contoh yang lebih kompleks. Bayangkan kita menjalankan toko buku online kecil:

BEGIN;

-- Menambahkan buku baru ke inventori kita
INSERT INTO books (title, author, price) VALUES ('The PostgreSQL Wizard', 'Data McDatabase', 29.99);

-- Memperbarui jumlah stok
UPDATE inventory SET stock = stock + 100 WHERE book_id = (SELECT id FROM books WHERE title = 'The PostgreSQL Wizard');

-- Ups! Kita menyadari kita membuat kesalahan dalam harga
UPDATE books SET price = 24.99 WHERE title = 'The PostgreSQL Wizard';

-- Semua terlihat baik, mari kita membuat perubahan ini tetap
COMMIT;

Dalam transaksi ini, kita:

  1. Menambahkan buku baru ke katalog kita
  2. Memperbarui stok inventori agar menunjukkan kita memiliki 100 eksemplar di stok
  3. Menyadari kita menentukan harga buku terlalu tinggi dan memperbaiki harga

Karena kita menggunakan transaksi, semua perubahan ini terjadi bersamaan. Jika bagian mana-mana gagal (mungkin tabel inventori terkunci karena alasan tertentu), tidak ada perubahan yang akan dilakukan. Ini menjaga konsistensi basis data kita dan menjalankan toko buku kita dengan lancar!

Apa Jika Ada Kesalahan?

Mari kita lihat sebuah scenario di mana kita perlu menggunakan ROLLBACK:

BEGIN;

-- Mencoba memperbarui harga buku
UPDATE books SET price = 19.99 WHERE title = 'The PostgreSQL Wizard';

-- Oh no! Kita baru saja mengetahui buku ini sudah tak tersedia
-- Kita tidak ingin memperbarui harga buku yang kita tidak bisa menjual

ROLLBACK;

Di sini, kita mulai memperbarui harga buku, tetapi kemudian menyadari kita seharusnya tidak menjualnya sama sekali. Dengan menggunakan ROLLBACK, kita memastikan bahwa tidak ada perubahan yang dibuat ke dalam basis data kita. Itu seperti transaksi itu tidak pernah terjadi!

Penutup

Dan itu adalah, teman-teman! Anda telah mengambil langkah pertama ke dalam dunia transaksi PostgreSQL. Ingat:

  • BEGIN memulai transaksi Anda
  • COMMIT menyimpan perubahan Anda
  • ROLLBACK adalah tombol "undo" Anda

Transaksi adalah seperti jaring keselamatan untuk operasi basis data Anda. Mereka memastikan bahwa data Anda tetap konsisten, bahkan ketika hal-hal tidak berjalan sesuai rencana.

Sekiranya Anda terus menjalankan perjalanan PostgreSQL Anda, Anda akan menemukan transaksi menjadi teman terbaik Anda. Mereka akan membantu Anda tidur dengan nyaman malam, tahu bahwa operasi basis data Anda aman dan kokoh.

Terus latihan, tetap curiga, dan sebelum Anda sadari, Anda akan menjadi ahli PostgreSQL dalam hak Anda sendiri! Selamat coding, dan may your transactions always COMMIT successfully!

Credits: Image by storyset