do ifadeleri yazma
Veri temizlerken sıkça hatalı tarihler içeren verilerle karşılaşırız. Bu, bir istisnaya yol açar ve SQL ifademizi durdurur; ancak bir DO fonksiyonunu istisna yakalayıcıyla birlikte kullanarak ifademizin sonuna kadar çalışmasını sağlayabiliriz. patients tablosu ve created_on sütunuyla bu tür bir istisnayı nasıl ele alabileceğimize bakalım. Bu aynı zamanda DO tarzı bir fonksiyon kullanmamız için iyi bir fırsat olacak.
Bu egzersiz, kursun bir parçasıdır
PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi
Egzersiz talimatları
- Bir istisna yakalamayı başlatmak için bir
DOfonksiyonu oluştur. patientstablosuna şu değerlerleINSERTyaptığın bir işlemi BEGIN ile başlat: (a1c=5.8,glucose=89,fasting=TRUEvecreated_on= '37-03-2020 01:15:54').- Hata durumunda
errorstablosunundetailsütununa'bad date'ekleyen birEXCEPTIONyakalayıcı ekle. - Dili
'plpgsql'olarak belirt.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
-- Create a DO $$ function
____ ____
-- BEGIN a transaction block
BEGIN
INSERT INTO patients (a1c, glucose, fasting, created_on)
VALUES (____, ____, ____, '37-03-2020 01:15:54');
-- Add an EXCEPTION
___
-- For all all other type of errors
WHEN others THEN
INSERT INTO errors (msg, detail)
VALUES ('failed to insert', '____');
END;
-- Make sure to specify the language
$$ language '____';
-- Select all the errors recorded
SELECT * FROM errors;