0% menganggap dokumen ini bermanfaat (0 suara)
75 tayangan4 halaman

Transaction Control Language - SAVEPOINT DAN ROLLBACK

Dokumen tersebut menjelaskan tentang fitur savepoint pada MySQL yang memungkinkan rollback ke titik penyimpanan (savepoint) tertentu selama transaksi, bukan hanya commit dan rollback seluruh transaksi. Savepoint dapat digunakan untuk mengembalikan database ke kondisi sebelum perubahan tertentu tanpa membatalkan seluruh transaksi.

Diunggah oleh

Lee Jihoon
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
75 tayangan4 halaman

Transaction Control Language - SAVEPOINT DAN ROLLBACK

Dokumen tersebut menjelaskan tentang fitur savepoint pada MySQL yang memungkinkan rollback ke titik penyimpanan (savepoint) tertentu selama transaksi, bukan hanya commit dan rollback seluruh transaksi. Savepoint dapat digunakan untuk mengembalikan database ke kondisi sebelum perubahan tertentu tanpa membatalkan seluruh transaksi.

Diunggah oleh

Lee Jihoon
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 4

Transaction Control Language (TCL) pada MySQL tidak hanya

menyediakan perintah commit dan rollback akan tetapi juga


adanya fitur savepoint, dengan adanya fitur savepoint
memungkinkan kita untuk melakukan rollback ke savepoint yang
kita tentukan, gambar diatas adalah ilustrasi dari penggunaan
savepoint. Berikut adalah cara dan contoh menggunakan
savepoint di MySQL:

mysql> start transaction;


Query OK, 0 rows affected (0.00 sec)

mysql> Insert into mahasiswa (nama, npm, j_kelamin, t_lahir,


alamat, kota, telepon, email) values
-> (.... Dipersingkat... );
Records: 5 Duplicates: 0 Warnings: 0

mysql> select id_mhs, npm, nama from mahasiswa;


+--------+----------+----------------+
| id_mhs | npm | nama |
+--------+----------+----------------+
| 1 | 51411136 | AA Aditya A |
| 2 | 51412371 | A Aditya A |
| 3 | 51411111 | A Dimas A |
| 4 | 51411112 | A Faisal Dimas |
| 5 | 51411113 | A Faridah Nur |
+--------+----------+----------------+
5 rows in set (0.00 sec)

mysql> savepoint cekpoin1;


Query OK, 0 rows affected (0.00 sec)
Sampai disini kita telah membuat savepoint pertama dimana jika suatu
waktu diharuskan untuk melakukan rollback ke savepoint ini.
mysql> update mahasiswa set npm = 51412343 where id_mhs = 5;
Query OK, 1 row affected (0.49 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> delete from mahasiswa where id_mhs = 4;


Query OK, 1 row affected (0.00 sec)

mysql> select id_mhs, npm, nama from mahasiswa;


+--------+----------+---------------+
| id_mhs | npm | nama |
+--------+----------+---------------+
| 1 | 51411136 | AA Aditya A |
| 2 | 51412371 | A Aditya A |
| 3 | 51411111 | A Dimas A |
| 5 | 51412343 | A Faridah Nur |
+--------+----------+---------------+
4 rows in set (0.04 sec)

mysql> savepoint cekpoin2;


Query OK, 0 rows affected (0.00 sec)

Ini adalah savepoint ke dua yang dibuat jika suatu waktu perlu melakukan
rollback ke savepoint ini.
mysql> delete from mahasiswa;
Query OK, 4 rows affected (0.00 sec)

mysql> select * from mahasiswa


Empty set (0.00 sec)

mysql> savepoint cekpoin3;


Query OK, 0 rows affected (0.00 sec)
Sampai disini kita telah membuat tiga savepoint dengan kondisi terakhir
tabel mahasiswa pada database adalah kosong, berikut contoh rollback
dengan savepoint di mysql:

mysql> rollback to cekpoin2;


Query OK, 0 rows affected (0.00 sec)

mysql> select id_mhs, npm, nama from mahasiswa;


+--------+----------+---------------+
| id_mhs | npm | nama |
+--------+----------+---------------+
| 1 | 51411136 | AA Aditya A |
| 2 | 51412371 | A Aditya A |
| 3 | 51411111 | A Dimas A |
| 5 | 51412343 | A Faridah Nur |
+--------+----------+---------------+
4 rows in set (0.04 sec)

Dengan demikian database akan mengembalika data berdasarkan


savepoint yang ditentukan, kita dapat membuat savepoint sebanyak yang
diperlukan dan dengan sendirinya savepoint akan terhapus ketika kita
melakukan commit atau rollback, jangan lupa bahwa setiap kali transaksi di

akhiri dengan commit atau rollback maka kita perlu menjalankan transaksi
baru. 

Penamaan savepoint juga perlu diperhatikan karena memberi


nama yang sama pada savepoint tidak akan memberikan pesan
error melainkan akan mengganti savepoint dari nama
sebelumnya dengan kondisi / transaksi terbaru sehingga perlu
berhati-hati dalam memberi nama savepoint.

Anda mungkin juga menyukai