【发布时间】:2020-03-12 19:15:16
【问题描述】:
DO $$
BEGIN
-- Check to make sure that event starts after users created
IF EXISTS (
SELECT users.id
FROM event
INNER JOIN users ON event.user_id::INT = users.id
WHERE event.start > users.created
)
THEN
RAISE NOTICE 'SUCCESSFUL %', now();
ELSE
RAISE EXCEPTION 'ERROR on % - All Event start timestamps must be created after users are created',now();
END IF;
END $$;
这个例外是为了检查时间戳并且效果很好。但我想添加一个类似的条件和至少 3 个以上的异常条件。我现在想在最后返回异常。如果第一次检查失败,我不希望进程停止。我希望最终一次性提出所有失败的测试。我怎么做 ?我阅读了有关堆叠诊断的信息,但不知道它是否正确,或者我应该只使用 IF-else if 吗?
【问题讨论】:
标签: sql postgresql exception plpgsql