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.

Emre Kabalı

2014'ten beri yazılım geliştirici ve Microsoft MVP. Cursor AI, Flutter ve .NET ile yazılım geliştirme üzerine eğitimler ve rehberler hazırlıyorum.

More Reading

Post navigation

Leave a Comment

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir