PostgreSQL - Transaksi: Panduan untuk Pemula

Hai sana, para ahli basis data masa depan! Hari ini, kita akan melihat dunia yang magis dari transaksi PostgreSQL. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - saya akan menjadi panduan ramah Anda dalam perjalanan ini. Pada akhir tutorial ini, Anda akan mengendalikan transaksi seperti seorang ahli!

PostgreSQL - Transactions

Apa Itu Transaksi?

Sebelum kita masuk ke hal yang rinci, mari kita mengerti apa itu transaksi. Bayangkan Anda sedang transfer uang dari satu rekening bank ke rekening lain. Anda tentu tidak mau uang hilang dari satu rekening tanpa muncul di rekening lain, kan? Itu adalah tempat transaksi berguna. Mereka memastikan bahwa sebuah rangkaian operasi basis data baik kesemuanya sukses atau kesemuanya gagal bersamaan. Itu seperti kesepakatan "semua atau nihil".

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 Membatalkan semua perubahan yang dibuat dalam transaksi

Pertimbangkan perintah ini sebagai 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 mulai lagi!"

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

Selanjutnya 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 transfer $100 dari rekening 1 ke rekening 2. COMMIT di akhir mengatakan ke PostgreSQL, "Oke, kita selesai di sini. Buat perubahan ini permanen!" Itu seperti menekan tombol simpan di permainan video kesukaan Anda - kemajuan Anda sekarang terkunci.

Perintah ROLLBACK

Tapi apa kalau sesuatu salah? Itu tempat ROLLBACK datang untuk menyelamatkan!

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

ROLLBACK adalah seperti penghapus Anda. Itu menghapus semua perubahan yang Anda buat sejak terakhir BEGIN. Dalam kasus ini, kita secara tidak sengaja mencoba untuk transfer jutaan dolar (tidak akan burukkan, kan?), 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;

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

-- Update 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 buat perubahan ini permanen
COMMIT;

Dalam transaksi ini, kita:

  1. Menambahkan buku baru ke katalog kita
  2. Update jumlah stok
  3. Menyadari kita membuat kesalahan dalam harga dan menyesuaikan harga

Karena kita menggunakan transaksi, semua perubahan ini terjadi bersamaan. Jika bagian manapun 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 secara mulus!

Apa Kalau Sesuatu Salah?

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

BEGIN;

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

-- Oh no! Kita baru saja mengetahui buku ini sudah tidak dicetak
-- Kita tidak ingin mengupdate harga buku yang kita tidak bisa menjual

ROLLBACK;

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

Penutup

Dan begitulah, teman-teman! Anda telah mengambil langkah pertama ke 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.

Sebagai Anda terus melanjutkan 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 terjaga.

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

Credits: Image by storyset