Belirli istisnaları yakalama
Glucose alanı null olarak ayarlandığında bunu yakalayan ve Glucose alanının null olamayacağını açıkça belirten bir mesajı günlükleyen bir DO fonksiyonu yazalım.
Bu egzersiz, kursun bir parçasıdır
PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi
Egzersiz talimatları
- DO fonksiyonunun
BEGINbloğunun içine,patientstablosuna (a1c=7.5,glucose=nullvefasting=TRUE) satırınıINSERTet. - Hata durumunda
errorstablosunun detail sütununa"Glucose can not be null."ekleyen birnot_null_violationistisnası ekle.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
-- Make a DO function
DO $$
-- Open a transaction block
BEGIN
INSERT INTO patients (a1c, glucose, fasting)
VALUES (7.5, ___, TRUE);
-- Catch an Exception
EXCEPTION
-- Make it catch not_null_constraint exception types
WHEN ___ ___
-- Insert the proper msg and detail
INSERT INTO errors (___, detail)
VALUES ('failed to insert', '___');
END$$;
-- Select all the errors recorded
SELECT * FROM errors;