Transaction Control Language (TCL) adalah salah satu kategori perintah dalam SQL yang digunakan untuk mengontrol transaksi dalam database. TCL terdiri dari tiga perintah utama yaitu COMMIT, ROLLBACK, dan SAVEPOINT.
Berikut adalah penjelasan singkat mengenai ketiga perintah TCL tersebut:
1. COMMIT
Perintah COMMIT digunakan untuk mengakhiri sebuah transaksi dan menyimpan semua perubahan yang dilakukan pada database sejak awal transaksi. Dalam hal ini, jika semua operasi dalam transaksi berhasil, perubahan akan dikonfirmasi dan akan dipertahankan pada database. Namun, jika terjadi kesalahan pada salah satu operasi dalam transaksi, semua perubahan yang dilakukan sejak awal transaksi akan dihapus dan tidak akan disimpan pada database.
Contohnya :
Contoh penggunaan perintah COMMIT adalah sebagai berikut:
- Perintah di atas memulai sebuah transaksi dengan perintah BEGIN TRANSACTION.
- Selanjutnya dilakukan dua operasi UPDATE pada tabel_barang untuk mengubah nilai stok barang dengan id_barang 1 dan 2.
- Setelah itu, perintah COMMIT digunakan untuk mengakhiri transaksi dan menyimpan semua perubahan yang telah dilakukan pada database sejak awal transaksi.
- Jika tidak terjadi kesalahan pada operasi UPDATE, maka semua perubahan akan dikonfirmasi dan akan dipertahankan pada database.
- BEGIN TRANSACTION: perintah untuk memulai transaksi.
- UPDATE orders SET status = 'shipped' WHERE order_id = 1234: perintah untuk mengubah status pesanan dengan ID 1234 menjadi "shipped".
- INSERT INTO order_log (order_id, log_message) VALUES (1234, 'Order shipped'): perintah untuk memasukkan catatan log bahwa pesanan dengan ID 1234 telah dikirim.
- ROLLBACK: perintah untuk membatalkan transaksi dan mengembalikan database ke kondisi sebelum transaksi dimulai.
Contohnya :
Dalam contoh ini, kita memulai sebuah transaksi dan melakukan beberapa perubahan pada tabel "customer". Setelah melakukan perubahan pada baris dengan id 1, kita membuat savepoint "sp1". Kemudian, setelah melakukan perubahan pada baris dengan id 2, kita membuat savepoint "sp2". Setelah melakukan perubahan pada baris dengan id 3, kita memutuskan untuk membatalkan perubahan pada baris 2 dan 3, tetapi tetap menyimpan perubahan pada baris 1. Untuk melakukannya, kita menggunakan perintah "ROLLBACK TO sp1", yang akan mengembalikan tabel "customer" ke keadaan yang sama seperti saat savepoint "sp1" dibuat.
Komentar
Posting Komentar