CodeBlanks Logo Icon CodeBlanks

SELECT FOR UPDATE

Satır kilitlemeyi öğrenirsin.

SELECT FOR UPDATE

SELECT FOR UPDATE satırı okur ve kilitler. Transaction bitene kadar başkası değiştiremez.

BEGIN;
SELECT * FROM accounts WHERE id = 1 FOR UPDATE;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
COMMIT;

Örnekte: güvenli para çekme.

SELECT FOR UPDATE — ayrıntı

FOR UPDATE okunan satırı kilitler. COMMIT veya ROLLBACK'e kadar kilit kalır.

Örneğin stok kontrolünde SELECT stock FROM products WHERE id = 1 FOR UPDATE yazarsın; işlem bitene kadar başka kimse bu satırı değiştiremez.

Uygulama SELECT FOR UPDATE

SELECT ... FOR UPDATE ile bir satırı kilitle ve güncelle.

Başlangıç kodu

query.sql
-- güvenli güncelleme
SELECT * FROM accounts WHERE id = 1

Örnek çözüm

query.sql
BEGIN;
SELECT * FROM accounts WHERE id = 1 FOR UPDATE;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
COMMIT;

Beklenen çıktı

id  balance
1   400

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 FOR UPDATE kilidi ne zaman biter?

  • SELECT'te
  • COMMIT'te Doğru cevap
  • Asla
  • UPDATE'te

Açıklama: FOR UPDATE kilidi COMMIT'te biter.

2 FOR UPDATE ekle

Soru
SELECT * FROM accounts WHERE id = 1 ____
Cevap
SELECT * FROM accounts WHERE id = 1 FOR UPDATE

Açıklama: FOR UPDATE doğru cevap.

3 SELECT FOR UPDATE: kavramları eşleştir

Kavram Anlamı
FOR UPDATE kilitle + oku
BEGIN başlat
COMMIT kilit bırak
güvenli tutarlı

İleri seviye bölümündeki tüm dersler