【发布时间】:2012-12-20 13:43:08
【问题描述】:
我想在 PostgreSQL 中为我的视图创建一个触发器。这个想法是所有新数据都必须满足要插入的条件。但是这里出了点问题,我在手册中找不到答案。
CREATE OR REPLACE VIEW My_View AS
SELECT name, adress, count FROM club, band, country;
CREATE OR REPLACE FUNCTION insert() RETURNS TRIGGER AS $$
BEGIN
IF(NEW.count > 10) THEN
INSERT INTO My_View VALUES (NEW.name, NEW.adress, NEW.count);
END IF;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER insert INSTEAD OF INSERT ON My_View
FOR EACH ROW EXECUTE PROCEDURE insert();
【问题讨论】:
-
你的 postgresql 版本是多少?你有什么错误信息?你能在sqlfiddle.com 上打开一个沙盒吗?
-
我的版本是 9.1 并且错误很奇怪,因为它看起来几乎永远不会结束循环......消息是“堆栈溢出”。错误在于“INSERT”
-
也许你不应该称之为插入?
标签: sql postgresql triggers plpgsql sql-view