我在PostgreSQL中有一个INSERT触发器,我试图将插入的行连接到另一个表上,然后将结果插入第三个表中。让我们调用INSERT触发器触发的原始表," A&#34 ;;光标连接A的表格" B&#34 ;;然后触发器功能表插入" C"。
我的想法是,AFTER INSERT功能应该允许我传递来自" NEW" row作为参数,以便引用表A中的相应行,如下所示:
myCursor CURSOR (insertedKey A.key%TYPE) FOR
SELECT *
FROM A
INNER JOIN B
ON A.key=B.key
WHERE A.key=insertedKey;
...
OPEN myCursor (NEW.key);
FETCH NEXT FROM myCursor INTO row_C;
INSERT INTO C VALUES (row_C.*);
这给了我一个空光标。如果我在AFTER UPDATE触发触发器,它会起作用,但是使用来自A的旧行。这使我认为PostgreSQL并不认为插入/更新后意味着我的意思。
或许我只是做错了什么?有没有办法做我想做的事情?
答案 0 :(得分:3)
不确定为什么会这样,但你可以按照
的方式做点什么{{1}}