开始使用免费开始使用

编写 DO 语句

在清洗数据时,我们常常会遇到包含错误日期的数据。这会引发异常并中断 SQL 语句。然而,通过使用带有异常处理器的 DO 函数,语句仍可运行完成。让我们在 patients 表和 created_on 列上看看如何处理这类异常。这也将给您一个使用 DO 风格函数的机会。

本练习是课程的一部分

PostgreSQL 中的事务与错误处理

查看课程

练习说明

  • 创建一个 DO 函数,用于开始捕获异常。
  • 在事务中使用 BEGIN,并将一行(a1c = 5.8glucose = 89fasting = TRUEcreated_on = '37-03-2020 01:15:54'INSERT 到 patients 表中。
  • 添加一个 EXCEPTION 处理器,在出错时向 errors 表的 detail 列插入 'bad date'
  • 指定 '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;
编辑并运行代码