BaşlayınÜcretsiz Başlayın

Stacked diagnostics alma

Stacked diagnostics, PostgreSQL’in dahili hata mesajını ve istisna ayrıntılarını alabilir. Hastalar tablosuna geri dönelim ve test sınırının üzerinde bir A1C eklemeyi deneyelim. Bu, yakalayabileceğimiz bir check constraint istisnasına yol açacak. İstisna işleyicisinde stacked diagnostics kullanarak hata kaydımızı zenginleştirebiliriz.

Bu egzersiz

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

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • DECLARE içinde iki değişken tanımla: exc_message ve exc_detail (türleri text).
  • Tanılama yığınını al ve exc_message’i MESSAGE_TEXT, exc_detail’i PG_EXCEPTION_DETAIL olacak şekilde ayarla.
  • exc_message ve exc_detail değerlerini errors tablosunun msg ve detail alanlarına ekle.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

DO $$ 
-- Declare our text variables: exc_message and exc_detail 
___
   ___ text;
   exc_detail ___;
BEGIN 
    INSERT INTO patients (a1c, glucose, fasting) 
    values (20, 89, TRUE);
EXCEPTION 
WHEN others THEN
    -- Get the exception message and detail via stacked diagnostics
	___ ___ ___ 
    	exc_message = ___,
        exc_detail = ___;
    -- Record the exception message and detail in the errors table
    INSERT INTO errors (___, detail) VALUES (exc_message, ___);
END;
$$ language 'plpgsql';

-- Select all the errors recorded
SELECT * FROM errors;
Kodu Düzenle ve Çalıştır