sql transaction

Sql Transaction Kullanımı

Merhabalar,
Bugün sizlere SQL uygulamalarında bir query çalıştırırken, hatalı işlemi en aza indirmek için kullandığımız sql transaction işleminin nasıl kullanıldığından bahsedeceğim.

Transaction Ne İşe Yarar?

  • Veri bütünlüğünü korur: Kodda bir hata oluştuğunda işlemleri geri alarak tabloların etkilenmesini önler.
  • Tutarlılığı sağlar: Birbirine bağlı tablolarda veri tutarlılığının korunmasında önemli bir rol oynar.

Ne Zaman Kullanılır?

Transaction işlemi, özellikle şu durumlarda kullanılır:

  • Kritik işlemler: INSERT, UPDATE, DELETE gibi önemli veritabanı değişikliklerinde
  • Veri güvenliği: Verinin hatasız kaydedildiğinden emin olmak için
  • Hata durumlarında geri alma: İşlem sırasında hata alındığında süreci geriye almak için

Transaction’da COMMIT ve ROLLBACK

  • COMMIT: Yapılan değişiklikleri kalıcı olarak veritabanına kaydeder.
  • ROLLBACK: Bir hata oluşursa yapılan değişiklikleri geri alarak işlemi iptal eder.

Örnek Senaryo: Kullanıcı E-posta Güncelleme

Bir kullanıcının e-posta adresini güncellemek istiyoruz. Ancak yanlış bir WHERE koşulu (örneğin, koşulu tamamen unutmak) tüm kullanıcıların e-posta adreslerini değiştirebilir.

Bu riski önlemek için BEGIN TRAN, COMMIT ve ROLLBACK komutlarını kullanarak güvenli bir işlem gerçekleştiriyoruz.

-- Transaction başlatılıyor
BEGIN TRAN EmailUpdate;

-- Kullanıcının e-posta adresini güncelleme
UPDATE Users
SET Email = 'new.email@example.com'
WHERE UserID = 1; -- Burada WHERE olmadan çalıştırırsanız tüm kullanıcılar güncellenir!

-- Tabloyu kontrol etmek için SELECT sorgusu
SELECT * FROM Users WHERE UserID = 1;

-- Eğer her şey doğruysa değişiklikleri kaydet
COMMIT TRAN EmailUpdate;

-- Eğer bir hata varsa işlemi geri al
ROLLBACK TRAN EmailUpdate;

Kod Açıklamaları

BEGIN TRAN EmailUpdate: Transaction’ı başlatır.
UPDATE Users: E-posta adresini günceller. WHERE koşulu doğru yazılmazsa tüm kayıtlar güncellenebilir!
SELECT * FROM Users: Güncelleme sonrası veriyi kontrol etmek için sorgu yapılır.
COMMIT TRAN EmailUpdate: Eğer işlem doğruysa değişiklikleri kaydeder.
ROLLBACK TRAN EmailUpdate: Hata fark edilirse tüm değişiklikleri geri alır.

Özet ve Sonuç

  • WHERE koşulunun doğru yazılması kritik öneme sahiptir.
  • Transaction kullanımı sayesinde olası hatalar önlenebilir ve veri bütünlüğü korunur.
  • COMMIT ile işlemler kalıcı hale getirilir, ROLLBACK ile geri alınabilir.
  • Özellikle kritik veri değişikliklerinde bu yöntemi kullanmak güvenlik açısından önemlidir.

More Reading

Post navigation

Leave a Comment

Leave a Reply

Your email address will not be published. Required fields are marked *