所以这个问题的评论提到,PostgreSQL 中的“存储过程”和“存储功能”略有不同。
评论链接到维基百科文章,但其中一些似乎并不适用(例如,它们可以在SELECT声明中使用)。
该语法本身似乎有点混乱:
CREATE FUNCTION emp_stamp() RETURNS trigger AS $emp_stamp$
BEGIN
[...]
END;
$emp_stamp$ LANGUAGE plpgsql;
CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp
FOR EACH ROW EXECUTE PROCEDURE emp_stamp();
Run Code Online (Sandbox Code Playgroud)
您创建了一个FUNCTION但将其称为PROCEDURE.
那么这两者有什么区别呢?