我有很多触发功能,其中一些有一个奇怪的错误:“ Syntax error at or near ;
”这是我的代码:
CREATE OR REPLACE FUNCTION zajisti_vyplnenost() RETURNS trigger AS $$
BEGIN
IF NEW.typ_vztahu != 1 THEN
RETURN NEW;
END IF;
IF NEW.nad.typ_sj = 1 THEN
IF NEW.nad.vrstva.vypln = true THEN
ELSE
RAISE EXCEPTION 'Totožné stratigrafické jednotky musejí být stejného typu!';
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER zajisti_vyplnenost
BEFORE INSERT OR UPDATE ON s_vztah
FOR EACH ROW
EXECUTE PROCEDURE zajisti_vyplnenost();
根据调试器,错误应该在第 14 行(带有END;
)。我试图找到可能导致问题的东西,但这个函数看起来像其他不会触发任何错误的函数。我查看了一些有关 plpgsql 中函数和 END 语法的文档,但没有任何乐趣,而且分号使该错误对 Google 非常不友好。
那么我的语法的哪一部分是错误的,如何纠正呢?