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
Petunjuk latihan
DECLAREdua variabelexc_messagedanexc_detailbertipe text.- Ambil diagnostic stack dan setel
exc_messagemenjadiMESSAGE_TEXTdanexc_detailmenjadiPG_EXCEPTION_DETAIL. - Masukkan
exc_messagedanexc_detailke kolommsgdandetailpada 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;