我正在将 PostgreSQL 与 pgAdmin 一起使用,但我无法使触发器功能正常工作。但是,据我所知,PostgreSQL 中可以返回类型触发器吗?
CREATE OR REPLACE FUNCTION validate_Cat()
RETURNS TRIGGER AS
$BODY$
BEGIN
-- CODE here
END;
$BODY$
LANGUAGE SQL;
CREATE TRIGGER validate_Cat
AFTER INSERT OR UPDATE ON Category
FOR EACH ROW execute procedure validate_Cat();
已解决,必须将语言更改为
PLPGSQL
我在下面遇到了同样的错误:
错误:SQL 函数无法返回类型触发器
当我尝试使用
LANGUAGE SQL
创建触发功能时,如下所示:
CREATE FUNCTION my_func() RETURNS trigger
LANGUAGE SQL -- Here
AS $$
$$;
但是,我可以使用
LANGUAGE plpgsql
创建触发函数,不会出现错误,如下所示:
CREATE FUNCTION my_func() RETURNS trigger
LANGUAGE plpgsql -- Here
AS $$
BEGIN
END;
$$;
此外,我还收到以下错误:
错误:SQL 函数无法返回 event_trigger 类型
当我尝试使用
LANGUAGE SQL
创建事件触发函数时,如下所示:
CREATE FUNCTION my_func()
RETURNS event_trigger
LANGUAGE SQL -- Here
AS $$
$$;
但是,我可以使用
LANGUAGE plpgsql
创建事件触发函数,不会出现错误,如下所示:
CREATE FUNCTION my_func()
RETURNS event_trigger
LANGUAGE plpgsql -- Here
AS $$
BEGIN
END;
$$;