Cara menggunakan mysql transaction error handling

Atomicity : Tujuannya untuk memastikan bahwa semua query di dalam satu kesatuan proses selesai dengan sukses, jika ada satu saja yang gagal, transaksi dibatalkan pada titik kegagalan yang berarti operasi query sebelumnya dikembalikan ke keadaan semula.

Konsistensi : Tujuannya untuk memastikan bahwa database diubah dengan benar dan memastikan semua query transaksi berhasil dilakukan sehingga integritas data tetap terjaga.

Isolasi : Ini memungkinkan sekumpulan query transaksi dilakukan secara independen dan transparan satu sama lain.

Daya Tahan : Untuk memastikan bahwa hasil dari transaksi yang dilakukan tetap ada bahkan saat terjadi kegagalan sistem.

Umumnya transaction di MySQL digunakan untuk database yang berhubungan dengan operasi tabel yang banyak dan sensitif, misalnya berhubungan dengan keuangan, saldo, jual beli, dan data sensitif lainnya.

Contoh saat transfer uang, query pertama adalah memotong saldo pengirim, kemudian query kedua menambah saldo pada penerima. Bayangkan jika saat memotong saldo pengirim berhasil lalu server down kemudian saldo penerima belum bertambah, ini akan membuat data jadi bermasalah.

Baca Juga:   MySQL error FIELD DOESN’T HAVE A DEFAULT VALUES

Syarat untuk melakukan transaction di database MySQL adalah harus bisa perintah dasar MySQL dulu, yaitu select, insert, update, delete, dan juga table engine mySQL nya innodb bukan myISAM, perintahnya menggunakan PDO.

Langsung saja, misalnya kita ingin insert table A, update table B, delete tabel C, dimana ketiga transaksi ini harus sukses semuanya, jika salah satu query gagal maka query sebelumnya digagalkan dan kondisi data dikembalikan seperti semula.

Download MySQL class

Klik di sini

Tulis kode di bawah ini

simpan dengan nama transaksi.php

<?php
include 'Db.class.php';

$db = new Db();


try {
  //start transaction
  $beginTransaction = $db->beginTransaction();

  //update insert
  $db->query('insert into tableA (a,b,c) values (1,2,3) ');

  //query update
  $db->query('update tableB set a=5 where b=2 ');

  //query delete
  $db->query('delete from tableC where a=2 ');


  //finish transaction
  $executeTransaction = $db->executeTransaction();//commit

} catch (PDOException $e) { 
    //atau (Exception $e) 
  $rollBack = $db->rollBack();
  echo "error msg: ".$e->getMessage();
  throw $e;
}

Nah, semua query harus berhasil, misalnya ada kegagalan ditengah, maka semua query sebelumnya digagalkan.

PostgreSQL adalah sebuah sistem database relasional objek, dan merupakan salah satu basis data yang paling banyak digunakan saat ini, selain MySQL dan Oracle. Walaupun dikembangkan secara open-source, namun ia mendukung sebagian besar standar Structured Query Language (SQL)

SQL terdiri dari Data Definition Language (DDL), Data Manipulation Language (DML), Data Control Language (DCL), dan Transaction Control Language. Commit, Rollback dan Save Point di PostgreSQL adalah 3 contoh Query dari Transaction Control Language (TCL) yang umum digunakan oleh DBA Developer dalam memanage sistem database.

Baca Juga :
PostgreSQL Dinobatkan Sebagai Solusi Manajemen Database Terbaik

Commit, Rollback dan Save Point merupakan fungsi yang digunakan untuk melakukan restore data ke kondisi awal sebelum dilakukan perubahan data. Berikut adalah basic demonstrasi dari Commit, Rollback dan Save Point di PostgreSQL:

Cara menggunakan mysql transaction error handling

Dengan menggunakan COMMIT, kita dapat mengakhiri semua transaksi dan menjadikannya sebagai perubahan permanen.

Commit

Cara menggunakan mysql transaction error handling

Dengan menggunakan ROLLBACK, kita bisa melompat ke keadaan terakhir dari sebuah transaksi yang telah di-commit sehingga update query berikut tidak akan tercatat di dalam transaksi.

Rollback Query

Cara menggunakan mysql transaction error handling

Selain melompat ke commit terakhir dari sebuah transaction, Rollback juga dapat digunakan melompat ke suatu titik tertentu yang didefinisikan didalam Savepoint. Savepoint menetapkan savepoint baru dalam transaksi saat ini. Sebuah savepoint adalah tanda khusus di dalam transaksi yang memungkinkan semua perintah yang dijalankan setelah dibuat untuk di Rollback, mengembalikan status transaksi ke keadaan pada saat savepoint. Savepoint hanya bisa terbentuk saat berada di dalam blok transaksi. Ada beberapa savepoint yang dapat didefinisikan di dalam transaksi.

SavePoint Query

Cara menggunakan mysql transaction error handling

Rollback to SavePoint Query. Dengan menggunakan Query berikut maka update query dibawah tidak akan tercatat di dalam transaksi.

Cara menggunakan mysql transaction error handling

Berikut adalah hasil akhir isi dari table Pegawai dimana kolom empid 2 dan 5 tidak terupdate karena Query Rollback.

Cara menggunakan mysql transaction error handling

Baca Juga :
Cara Mudah Ganti Password Root di Red Hat Enterprise Linux (RHEL) 7

Demikian contoh-contoh demonstrasi dasar dari Commit, Rollback dan Save Point pada PostgreSQL. Ingin belajar lebih lanjut tentang tips dan trik berkaitan dengan PostgreSQL? Anda bisa mengikuti PostgreSQL Complete Administration Training yang disediakan oleh i3.

Untuk info lebih lengkap mengenai training yang tersedia di i3, Anda dapat menghubungi langsung tim sales kami melalui halaman Contact Us.

Tentang i3

PT. Inovasi Informatika Indonesia (i3) dikenal sebagai perusahaan penyedia solusi dan layanan TI yang berfokus pada Open Source, Security, Big Data dan Cloud bagi bisnis. i3 menyediakan layanan TI yang komprehensif, meliputi konsultasi, migrasi dan implementasi, pelatihan, troubleshooting, dan managed services. Untuk informasi lebih lanjut perihal layanan dan solusi yang ditawarkan, Anda dapat menghubungi kami melalui [email protected].

Apa itu MySQL transaction?

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.

Apa fungsi dari COMMIT dan Rollback?

Commit, Rollback dan Save Point merupakan fungsi yang digunakan untuk melakukan restore data ke kondisi awal sebelum dilakukan perubahan data.

Apa itu perintah Rollback?

Menghentikan transaksi saat ini dan membuang semua pembaruan yang dilakukan oleh transaksi tersebut. Perintah ini melakukan fungsi yang sama denganMENGGUGURKAN perintah.

Apa perintah CMD untuk masuk ke MySQL?

MySQL Membuat Database dan Table.
Buka command prompt dengan cara tekan ctrl + R keudian ketik cmd lalu enter..
Buka MySQL dengan cara mengetikan cd AppServ\MySQL\bin\MySQL..
Bila meminta password, masukkan password yang kalian buat (tapi biasanya password defaultnya “root”).