Panduan Pemula untuk Transaksi MySQL
Hai sana, para ahli basis data masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia transaksi MySQL. Jangan khawatir jika Anda baru belajar pemrograman - saya akan menjadi panduan temananda, memecah konsep yang kompleks menjadi bagian kecil dan mudah untuk dimengerti. Jadi, ambil secangkir minuman favorit Anda, dan mari kita masuk ke dalam!
Transaksi MySQL
Bayangkan Anda berada di bank, membuat transfer dari rekening tabungan Anda ke rekening giro. Anda tentu tidak ingin uang hilang dari tabungan Anda tanpa muncul di giro, kan? Itu adalah tempat transaksi berguna!
Dalam MySQL, transaksi adalah rangkaian operasi yang diperlakukan sebagai unit kerja tunggal. Itu seperti gelembung perlindungan di sekitar rangkaian operasi basis data, memastikan bahwa mereka semua berhasil atau gagal bersamaan.
mari kita lihat contoh sederhana:
START TRANSACTION;
UPDATE savings_account SET balance = balance - 100 WHERE account_id = 123;
UPDATE checking_account SET balance = balance + 100 WHERE account_id = 456;
COMMIT;
Dalam transaksi ini, kita memindahkan $100 dari rekening tabungan ke rekening giro. Perintah START TRANSACTION
memulai transaksi kita, dan perintah COMMIT
di akhir membuat perubahan permanen.
Properti Transaksi
Transaksi di MySQL mengikuti properti ACID. Tidak, bukan jenis asam yang Anda temukan di laboratorium! ACID singkatan dari:
- Atomicity: Semua operasi dalam transaksi berhasil atau mereka semua gagal.
- Consistency: Basis data tetap dalam keadaan konsisten sebelum dan sesudah transaksi.
- Isolation: Transaksi terisolasi dari yang lain sampai mereka selesai.
- Durability: Setelah transaksi dikommit, itu tetap demikian bahkan jika terjadi kegagalan sistem.
Pikirkan ACID sebagai malaikat penjaga operasi basis data Anda, memastikan bahwa semua tetap rapi dan rapi!
Statement Transaksi di MySQL
MySQL menyediakan beberapa statement untuk mengelola transaksi. Mari kita lihat mereka dalam tabel praktis:
Statement | Deskripsi |
---|---|
START TRANSACTION | Memulai transaksi baru |
COMMIT | Menyimpan perubahan secara permanen ke basis data |
ROLLBACK | Membatalkan perubahan yang dibuat dalam transaksi saat ini |
SET autocommit | Mengaktifkan atau menonaktifkan mode autocommit |
SAVEPOINT | Membuat titik simpan dalam transaksi ke mana Anda bisa kembali jika perlu |
Sekarang, mari kita jelajahi setiap satu dari ini secara detil.
Perintah COMMIT
Perintah COMMIT
seperti tombol "simpan" untuk transaksi Anda. Setelah Anda kommit, semua perubahan yang Anda buat menjadi permanen.
START TRANSACTION;
INSERT INTO students (name, age) VALUES ('Alice', 20);
INSERT INTO students (name, age) VALUES ('Bob', 22);
COMMIT;
Setelah COMMIT
ini, Alice dan Bob secara resmi menjadi bagian dari tabel murid kita. Selamat datang, Alice dan Bob!
Perintah AUTOCOMMIT
Secara default, MySQL beroperasi dalam mode autocommit, yang berarti setiap pernyataan diperlakukan sebagai transaksi terpisah. Anda dapat menonaktifkannya seperti ini:
SET autocommit = 0;
Sekarang, Anda perlu secara manual mengkommitkan perubahan Anda. Itu seperti menonaktifkan auto-save dalam permainan video - pastikan Anda ingat untuk menyimpan (kommit) secara regular!
Perintah ROLLBACK
ROLLBACK
adalah tombol "undo". Jika ada kesalahan dalam transaksi Anda, Anda dapat menggunakan ROLLBACK
untuk membatalkan semua perubahan.
START TRANSACTION;
DELETE FROM students WHERE name = 'Alice';
-- Oups! Kita tidak bermaksud menghapus Alice!
ROLLBACK;
Uff! Alice tetap aman di basis data kita. Ingat, ROLLBACK
hanya bekerja untuk perubahan yang belum dikommit.
Perintah SAVEPOINT
SAVEPOINT
memungkinkan Anda membuat titik simpan dalam transaksi. Anda kemudian dapat kembali ke titik ini jika perlu.
START TRANSACTION;
INSERT INTO students (name, age) VALUES ('Charlie', 21);
SAVEPOINT charlie_added;
INSERT INTO students (name, age) VALUES ('David', 23);
-- Oups! Kita hanya ingin menambah Charlie
ROLLBACK TO SAVEPOINT charlie_added;
COMMIT;
Dalam scenario ini, Charlie bergabung kelas, tetapi David tidak. Sayang, David!
Tipe Tabel yang Aman untuk Transaksi di MySQL
Tidak semua tipe tabel di MySQL mendukung transaksi. Mesin penyimpanan utama yang mendukung transaksi adalah:
- InnoDB
- NDB Cluster
InnoDB adalah yang paling banyak digunakan dan default dalam versi MySQL terbaru. Itu seperti pisau瑞士 Army knife dari mesin penyimpanan MySQL - multifungsi dan dapat dipercaya!
Transaksi Menggunakan Program Klien
Ketika menggunakan program klien MySQL seperti klien perintah baris, Anda dapat menggunakan sama perintah transaksi yang kita diskusikan. Mari kita lihat cerita kecil untuk mengilustrasikan:
mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO pet_shop (pet_name, species) VALUES ('Fluffy', 'cat');
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO pet_shop (pet_name, species) VALUES ('Rover', 'dog');
Query OK, 1 row affected (0.01 sec)
mysql> COMMIT;
Query OK, 0 rows affected (0.02 sec)
Dan begitu saja, Fluffy kucing dan Rover anjing telah menemukan rumah baru di basis data toko hewan peliharaan kita!
Ingat, transaksi adalah teman Anda dalam menjaga integritas data. Mereka memastikan bahwa operasi basis data Anda dapat dipercaya, bahkan ketika hal-hal tidak berjalan sesuai rencana. Latih menggunakan transaksi dalam operasi MySQL Anda, dan Anda akan menjadi maestro basis data dalam waktu singkat!
Itu saja untuk pelajaran hari ini tentang transaksi MySQL. Saya harap Anda menikmati perjalanan ini seolah-olah saya. Terus latih, tetap curiga, dan selamat coding!
Credits: Image by storyset