ПочатиПочніть безкоштовно

Написання інструкцій do

Під час очищення даних часто трапляються некоректні дати. Це спричиняє виняток і зупиняє виконання SQL-інструкції. Однак, якщо використати функцію DO з обробником винятків, наша інструкція виконається до кінця. Розгляньмо, як обробити такий виняток для таблиці patients і стовпця created_on. Це також дасть змогу попрактикуватися з функцією у стилі DO.

Ця вправа є частиною курсу

Транзакції та обробка помилок у PostgreSQL

Переглянути курс

Інструкції до вправи

  • Створіть функцію DO, щоб ініціювати перехоплення винятку.
  • BEGIN транзакцію, у якій ви INSERT-нете рядок (a1c = 5.8, glucose = 89, fasting = TRUE, а created_on = '37-03-2020 01:15:54') у таблицю patients.
  • Додайте обробник EXCEPTION, який у разі помилки вставляє 'bad date' у стовпець detail таблиці errors.
  • Вкажіть мову 'plpgsql'.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

-- 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;
Редагувати та запускати код