这是我第一次在青梅环境中使用触发器。我想我已经完成了大部分工作,但是当我插入数据时我遇到了一些问题。这是我的触发器
CREATE TRIGGER insert_trigger
BEFORE INSERT ON leads.abhi_temp
FOR EACH ROW EXECUTE PROCEDURE leads.my_trigger();
以下是触发器的定义
CREATE OR REPLACE FUNCTION leads.my_trigger()
RETURNS TRIGGER AS $$
BEGIN
IF ( NEW.date >= DATE '2003-01-01' AND
NEW.date < DATE '2003-12-31' ) THEN
INSERT INTO leads.abhi_temp_y2003 VALUES (NEW.*);
ELSIF ( NEW.date >= DATE '2004-01-01' AND
NEW.date < DATE '2004-12-31' ) THEN
INSERT INTO leads.abhi_temp_y2004 VALUES (NEW.*);
END IF;
RETURN NULL;
END;
$$
LANGUAGE plpgsql;
现在要将数据插入到我的表中,我使用
insert into leads.myData (select column1, column2 from leads.someOtherDara where column1 = '1');
但这给了我一个错误
ERROR: function cannot execute on segment because it issues a non-SELECT statement (functions.c:133)
我认为错误是因为我使用嵌套查询来插入数据。不知道如何解决这个问题。任何建议。在此先感谢您的帮助
答案 0 :(得分:0)
我知道,Greenplum对触发器的支持非常有限,它不支持DML操作。
我可以知道你是如何实现这一目标的,我的意思是如你所述的规则可以如你所说的那样应用