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
PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi
kursunun bir parçasıdırEgzersiz 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ı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
-- 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;