MySQL transaction Tutorial

Start Transaction, Commit, dan Rollback pada MySQL

Transaction adalah fitur sistem manajemen basis data (DBMS) yang membantu pemulihan data pada kesalahan internal. Transaction pada basis data adalah kumpulan kueri yang harus dieksekusi sehingga jika salah satu eksekusi kueri gagal, eksekusi kueri Anda akan kembali ke awal. Transaction adalah mekanisme yang memungkinkan untuk menginterpretasikan beberapa perubahan pada database dengan satu operasi.

Di MySQL, transaction dimulai dengan pernyataan START TRANSACTION dan diakhiri dengan pernyataan COMMIT atau ROLLBACK, serta dapat mengatur SET autocommit menjadi ya atau tidak.

  • START TRANSACTION memulai sebuah transaction baru.
  • COMMIT perintah COMMIT digunakan untuk menyimpan transaksi secara permanen di database.
  • ROLLBACK Perintah ROLLBACK digunakan untuk mengembalikan database ke bentuk awal.
  • SET autocommit menonaktifkan atau mengaktifkan mode COMMIT otomatis pada sesi saat ini.

Cara Menggunakan Perintah COMMIT MySQL

Perintah COMMIT digunakan untuk menyimpan transaksi secara permanen di database.

Dengan menggunakan TRANSACTION saat melakukan perintah seperti INSERT, UPDATE, DELETE maka traksaksi sebenarnya belum dilakukan secara permanen. Artinya operasi tersebut masih bisa di rollback / di batalkan.

Kapan perintah COMMIT dibutuhkan?

Dalam sebuah rangkaian operasi data, jika ada 1 atau lebih operasi yang mengalami kegagalan maka kita akan mengembalikan seperti ke bentuk semula. Jika tidak ada kesalahan maka seluruh rangkaian pernyataan akan di – COMMIT untuk menyimpan transaksi secara permanen.

Sekarang kita uji coba pada tabel pegawai berikut ini:

INSERT INTO pegawai 
VALUES 
(93032000,"arie","Payakumbuh Utara"),
(93032100,"alid","Payakumbuh Selatan"),
(93032200,"halwa","Payakumbuh Barat"),
(93032300,"aldam","Payakumbuh Timur");

Selanjutnya kita cek data pegawai yang telah diinputkan:

> SELECT * FROM pegawai;
+----------+-------+--------------------+
| nip      | nama  | alamat             |
+----------+-------+--------------------+
| 93032000 | arie  | Payakumbuh Utara   |
| 93032100 | alid  | Payakumbuh Selatan |
| 93032100 | halwa | Payakumbuh Barat   |
| 93032300 | aldam | Payakumbuh Timur   |
+----------+-------+--------------------+
4 rows in set (0.00 sec)

Untuk memulai menggunakan COMMIT harus dimulai dengan START TRANSACTON

> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

> INSERT INTO pegawai VALUES (93032400,"cesa","Payakumbuh Tengah");
Query OK, 1 row affected (0.00 sec)

> COMMIT;
Query OK, 0 rows affected (0.07 sec)

> SELECT * FROM pegawai;
+----------+-------+--------------------+
| nip      | nama  | alamat             |
+----------+-------+--------------------+
| 93032000 | arie  | Payakumbuh Utara   |
| 93032100 | alid  | Payakumbuh Selatan |
| 93032100 | halwa | Payakumbuh Barat   |
| 93032300 | aldam | Payakumbuh Timur   |
| 93032400 | cesa  | Payakumbuh Tengah  |
+----------+-------+--------------------+
5 rows in set (0.00 sec)

Maka data pegawai sudah tersimpan secara permanen dan tidak dapat di ROLLBACK / dibatalkan.

Cara Menggunakan Perintah ROLLBACK MySQL

Perintah COMMIT dan ROLLBACK saling berkaitan. Perintah ROLLBACK digunakan untuk mengembalikan data pada database ke bentuk awal.

Kapan perintah ROLLBACK dibutuhkan?

Dalam sebuah rangkaian operasi data, jika ada 1 atau lebih operasi yang mengalami kegagalan maka kita akan mengembalikan seperti ke bentuk semula menggunakan perintah ROLLBACK.

Untuk menggunakan COMMIT / ROLLBACK harus dimulai dengan START TRANSACTON

> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

> SELECT * FROM pegawai;
+----------+-------+--------------------+
| nip      | nama  | alamat             |
+----------+-------+--------------------+
| 93032000 | arie  | Payakumbuh Utara   |
| 93032100 | alid  | Payakumbuh Selatan |
| 93032100 | halwa | Payakumbuh Barat   |
| 93032300 | aldam | Payakumbuh Timur   |
| 93032400 | cesa  | Payakumbuh Tengah  |
+----------+-------+--------------------+
5 rows in set (0.00 sec)

> DELETE FROM pegawai WHERE nip="93032400";
Query OK, 1 row affected (0.00 sec)

> SELECT * FROM pefawai;
+----------+-------+--------------------+
| nip      | nama  | alamat             |
+----------+-------+--------------------+
| 93032000 | arie  | Payakumbuh Utara   |
| 93032100 | alid  | Payakumbuh Selatan |
| 93032100 | halwa | Payakumbuh Barat   |
| 93032300 | aldam | Payakumbuh Timur   |
+----------+-------+--------------------+
4 rows in set (0.00 sec)

> ROLLBACK;
Query OK, 0 rows affected (0.11 sec)

> SELECT * FROM pegawai;
+----------+-------+--------------------+
| nip      | nama  | alamat             |
+----------+-------+--------------------+
| 93032000 | arie  | Payakumbuh Utara   |
| 93032100 | alid  | Payakumbuh Selatan |
| 93032100 | halwa | Payakumbuh Barat   |
| 93032300 | aldam | Payakumbuh Timur   |
| 93032400 | cesa  | Payakumbuh Tengah  |
+----------+-------+--------------------+
5 rows in set (0.00 sec)

Perhatikan query di atas, dengan menggunakan perintah ROLLBACK data pegawai yang sudah di hapus dapat dikembalikan.

Maka sampai disini kita telah berhasil belajar Cara menggunakan Perintah START TRANSACTION, COMMIT, dan ROLLBACK pada MySQL.

Baca Juga:
Command DDL, DML, DCL, dan TCL dalam MySQL

Web Programmer. Flutter Developer. Content Creator. Founder Ayongoding.com. Penyuka minuman sachet. Menulis pakai tangan kanan. Masih main mobilan remot. Dan pernah kuliah Sistem Informasi sampai lulus.

Leave a Reply

Your email address will not be published. Required fields are marked *