Oracle'da Commit ve Rollback İşlemi

Oracle”da Commit ve Rollback İşlemi,

Datalar üzerinde işlem yapan insert,update,delete gibi DML cümleleri
Çalıştırıldığı zaman yapılan değişikliklerin kalıcı olması iÇin COMMIT
cümlesi Çalıştırılır. Yapılan bu değişiklikleri COMMIT cümlesi Çalıştırmadan
geri almak mümkündür. Bunu da ROLLBACK cümlesi ile yaparız.

Aşağıdaki durumlarda COMMIT komutu Çalıştırılır.

* COMMIT komutunu kendimiz Çalıştırdığımız zaman.
* Bir DDL cümlesi Çalıştırıldığı zaman.
* Oracle sunucularından disconnect oldugumuz zaman.

Aşağıdaki durumlarda ROLLBACK komutu Çalıştırılır.


*
ROLLBACK komutunu Çalıştırdığımız zaman.
* Sunucu anormal bir şekilde sonlandığı zaman.
* Bağlı olduğumuz oturum kill edildiği zaman.

ÜRNEK:

select adi,soyadi,adres from personel;

Yukarıdaki sorgu sonucu boş dönüyor.Yani tabloda herhangi bir kayıt yok.

insert into personel(adi,soyadi,adres) values (“tayfur”,'boler”,'istanbul”);

Yukarıdaki sorgu ile bir kayıt insert ettik.

COMMIT;

Yukarıdaki komut ile kayıtı kalıcı olarak

insert into personel(adi,soyadi,adres) values (“ali”,'bak”,'istanbul”);

Yukarıdaki sorgu ile bir kayıt insert ettik.

ROLLBACK;

Yukarıdaki komut ile yeni kaydımızı geri aldık.

insert into personel(adi,soyadi,adres) values (“ali”,'bak”,'istanbul”);

Yukarıdaki sql ile aynı kayıtı yeniden ekledik.

ALTER TABLE PERSONEL ADD (dogum_yeri VARCHAR2(20));

Yukarıdaki DDL ile personel tablomuza dogum_yeri kolonunu ekledik.

şimdi son eklediğimiz ‘ali’ kayıdını geri almak istiyoruz.

ROLLBACK;

Oracle ,yukarıdaki komutu Çalıştırdıgımızda geri alma işlemini yapamayacaktır.
Üünkü herhangi bir DDL ifade Çalıştırıldıgında otomatik olarak
COMMIT komutu Çalışmaktadır.

Bir sonraki makalelerde görüşmek dileğiyle,

Tayfur BÖLER
Database Administrator

Mysql Delete

Mysql Delete,

Tablolarda silme işlemi yapmak iÇin kullanılır.

Syntax:
DELETE FROM tablo_ismi
WHERE kosul

Ürnek:

* DELETE FROM personel
WHERE adi=’tayfur’
LIMIT satırSayısı;

Bu query Çalıştırdığımız da adi tayfur olan personeli silmiş olduk.

*Birden fazla tablodan aynı anda kayıt silmek iÇin ise:

delete pers,iltsm from personel as pers, iletisim as iltsm
where pers.id=iltsm.pers_id and statu=’iptal’;

Bu query’i de personel ve iletişim tablosundan statusu iptal olan kayıtları
siliyoruz. Bunu yaparken de where condition kısmında personel tablosundaki
id kolonu ile iletisim tablosundaki pers_id kolonunu birbirine bağlıyoruz ve
statuyü iptale eşitliyoruz.

TRUNCATE işlemi:

Syntax:
TRUNCATE TABLE table_name


TRUNCATE ile DELETE ARASINDAKİ FARK:

Ürneğin delete yapacağınız tabloda auto-incremant bir id kolonu olsun
yani id kolonun değeri her yeni kayıtta otomatik olarak bir artar demektir.
Ve bu tabloda da 20.000 satır data olmuş olsun. Siz delete işlemi yaptığınızda
tablodaki datalar silinmiş oldu ve siz tabloya yeni bir kayıt eklediniz.
Tablodaki id kolonu 20.001 den devam etmeye başlar.
Bu tabloya delete değilde truncate işlemi yaparsanız yine tablodaki
tüm veriler silinmiş olur ama tablodaki id kolonu siz yeni veri girdiğinizde
bu sefer 1 den başlamış olacaktır.

Diğer makaleler de görüşmek dileğiyle,

Tayfur BÖLER
Database Administrator