CodeBlanks Logo Icon CodeBlanks

Transactions

pg.Client ile transaction öğrenirsin.

Transactions

Bir transaction (işlem), birden çok SQL ifadesini tek bir atomik birim olarak çalıştırır. Ya hepsi başarılı olur ya da hiçbiri. Bu, veri bütünlüğü için kritiktir.

PostgreSQL'de transaction kalıbı: BEGIN → sorgular → COMMIT (başarılı) veya ROLLBACK (hata). pg modülünde pool.connect() ile bir istemci alır, client.query("BEGIN") ile başlatır, sorguları çalıştırır, sonra COMMIT veya ROLLBACK yapar ve istemciyi client.release() ile iade edersin.

pool.connect kalıbı

Transaction için pool.connect() ile özel bir istemci alırsın. Bu istemci, transaction boyunca tek bir bağlantı kullanır; bu, birden çok sorgunun aynı bağlantıda çalışmasını sağlar.

Kalıp: const client = await pool.connect(); try { await client.query("BEGIN"); await client.query(...); await client.query("COMMIT"); } catch(e) { await client.query("ROLLBACK"); } finally { client.release(); }. finally bloğu bağlantının her zaman iade edilmesini sağlar; bu, havuz tükenmesini önler.

Uygulama pool.connect türünü yaz

Pool sınıfını pg'den içe aktar. Bir havuz oluştur: new Pool({}). typeof pool.connect sonucunu yaz.

Başlangıç kodu

index.js
// modülü içe aktar

// havuz oluştur

// connect türünü yaz

Örnek çözüm

index.js
const { Pool } = require("pg");
const pool = new Pool({});
console.log(typeof pool.connect);

Beklenen çıktı

function

Soru ve cevaplar

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

1 Transaction'da hata olursa ne yapılır?

  • COMMIT
  • ROLLBACK Doğru cevap
  • BEGIN
  • SELECT

Açıklama: Hata olursa ROLLBACK ile işlem geri alınır.

2 Parçayı rolüne eşle

Kavram Anlamı
BEGIN İşlem başlatır
COMMIT Değişiklikleri kaydeder
ROLLBACK Geri alır
client.release() Bağlantıyı iade eder

3 Metod adını tamamla

Soru
const client = await pool.____()
Cevap
const client = await pool.connect()

Açıklama: pool.connect() transaction için bir istemci verir.

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