TRANSAKSI pada ORACLE
Transaksi
merupakan sebuah proses untuk mengakses atau mengubah isi basis data.
Tujuan transaksi
untuk mencegah data dari kehilangan atau kerusakan data.
Untuk menjaga
integritas dan ketahanan data, kita bisa melakukan perintah COMMIT
dan ROLLBACK
- COMMIT, untuk menandai transaksi berhasil
- ROLLBACK, transaksi harus diulang karena adanya kegagalan transaksi
Dalam ORACLE,
agar kita bisa melakukan ROLLBACK kita perlu menyimpan transaksi pada
sebuah SAVEPOINT(cek point), caranya
SAVEPOINT
[nama_savepoint];
Setelah berhasil
membuat sebuah SAVEPOINT, kita bisa melakukan perintah ROLLBACK,
caranya
ROLLBACK TO
[nama_savepoint];
Perintah ROLLBACK
akan terjadi kegagalan jika kita telah mengetikkan perintah COMMIT
sebelumnya,
Contoh ROLLBACK
ROLLBACK berhasil | ROLLBACK berhasil | ROLLBACK gagal |
CREATE TABLE tb(
Id NUMBER(11) PRIMARY KEY,
Nama VARCHAR2(40) NOT NULL
);
CREATE SEQUENCE seq INCREMENT BY 1; |
||
INSERT INTO tb
VALUES(seq.NEXTVAL,’Danang’);
|
||
SAVEPOINT simpan1; | SAVEPOINT simpan1; | SAVEPOINT simpan1; |
UPDATE tb SET nama = ‘Danang ESS’ WHERE id = 1; | COMMIT; | COMMIT; |
ROLLBACK TO simpan1; | UPDATE tb SET nama = ‘Danang ESS’ WHERE id = 1; | ROLLBACK TO simpan1; |
COMMIT; | SAVEPOINT simpan1; | |
ROLLBACK TO simpan1; COMMIT; |
Kenapa ROLLBACK bisa gagal???
Maka akan muncul
perintah error, karena data sudah di COMMIT sebelumnya yang artinya
bahwa transaksi sudah disetujui, dan secara ga langsung SAVEPOINT
yang telah kita buat sebelum COMMIT tadi akan dihapus
intinya, jika
kita telah melakukan COMMIT, maka SAVEPOINT sebelum COMMIT akan
terhapuskan, maka itulah kita tidak bisa melakukan ROLLBACK ke
SAVEPOINT sebelum COMMIT yang terakhir
Tidak ada komentar:
Posting Komentar