MulaiMulai sekarang secara gratis

Mengambil stacked diagnostics

Stacked diagnostics dapat mengambil pesan kesalahan internal PostgreSQL dan detail pengecualian. Mari kita meninjau kembali tabel patients dan mencoba menambahkan nilai A1C yang melebihi batas pengujian. Ini akan memicu pengecualian check constraint yang dapat kita tangkap. Kita dapat menggunakan stacked diagnostics di dalam exception handler untuk memperkaya pencatatan kesalahan kita.

Latihan ini adalah bagian dari kursus

Transaksi dan Penanganan Error di PostgreSQL

Lihat Kursus

Petunjuk latihan

  • DECLARE dua variabel exc_message dan exc_detail bertipe text.
  • Ambil diagnostic stack dan setel exc_message menjadi MESSAGE_TEXT dan exc_detail menjadi PG_EXCEPTION_DETAIL.
  • Masukkan exc_message dan exc_detail ke kolom msg dan detail pada tabel errors.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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;
Edit dan Jalankan Kode