Geri alma, kayıt noktaları ve özel durumlar

PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi

Jason Myers

Principal Engineer

Otomatik geri alma

DO $$
BEGIN
    UPDATE cookies SET deliciousness = 11 where name = 'Cats Tongue';
    UPDATE cookies SET deliciousness = 12 where name = 'Gingerbread';
EXCEPTION
WHEN others THEN
   INSERT INTO errors (msg) VALUES ('Deliciousness only goes to 11!');
   RAISE INFO 'Deliciousness only goes to 11!';
END; 
$$ language 'plpgsql';
1 https://www.postgresql.org/docs/current/plpgsql-transactions.html
PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi
DO $$
BEGIN
    -- Blok 1
    BEGIN
        UPDATE inventory SET cost = 2.33 WHERE name = 'Linga';
        UPDATE inventory SET cost = 2.33 WHERE name = 'Petit-Beurre';
        UPDATE inventory SET cost = 2.33 WHERE name = 'Rosette';
    EXCEPTION
    WHEN others THEN
       INSERT INTO errors (msg) VALUES ('Max cost is 10!');
       RAISE INFO 'Max cost is 10!';
    END; 
    -- Blok 2
    BEGIN
        UPDATE inventory SET cost = 35.0 WHERE name = 'Macaron';
        UPDATE inventory SET cost = 3.50 WHERE name = 'Panellets';
    EXCEPTION
    WHEN others THEN
       INSERT INTO errors (msg) VALUES ('Max cost is 10!');
       RAISE INFO 'Max cost is 10!';
    END; 
END;
$$ language 'plpgsql';
PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi

Kayıt noktalarını öykünme

DO $$
BEGIN
    -- Blok 1
    BEGIN
        UPDATE inventory SET cost = 2.33 WHERE name = 'Linga';
        UPDATE inventory SET cost = 2.33 WHERE name = 'Petit-Beurre';
        UPDATE inventory SET cost = 2.33 WHERE name = 'Rosette';
    EXCEPTION
    WHEN others THEN
       INSERT INTO errors (msg) VALUES ('Max cost is 10!');
       RAISE INFO 'Max cost is 10!';
    END; 
PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi

Kayıt noktası öykünmesi (devam)

    -- Blok 2
    BEGIN
        UPDATE inventory SET cost = 35.0 WHERE name = 'Macaron';
        UPDATE inventory SET cost = 3.50 WHERE name = 'Panellets';
    EXCEPTION
    WHEN others THEN
       INSERT INTO errors (msg) VALUES ('Max cost is 10!');
       RAISE INFO 'Max cost is 10!';
    END; 
END;
$$ language 'plpgsql';
PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi

Kısa bir ara not

  • dış veri kümeleri
  • değişkenler
  • alan yerine koymanın hatalı kullanımı
PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi

Hadi pratik yapalım!

PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi

Preparing Video For Download...