首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL AFTER INSERT触发器,并引用插入的行

PostgreSQL AFTER INSERT触发器,并引用插入的行
EN

Stack Overflow用户
提问于 2017-01-21 08:18:48
回答 1查看 1.4K关注 0票数 3

我在PostgreSQL中有一个INSERT触发器,我试图让它连接另一个表上插入的行,然后将结果插入到第三个表中。让我们调用INSERT触发器触发的原始表"A";游标在“B”上连接A的表;然后触发器函数插入到"C“的表。

我的想法是,插入之后的函数应该允许我将"NEW“行中的值作为参数传递,以便在表A中引用其对应的行,如下所示:

代码语言:javascript
复制
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在插入/更新之后并不认为它意味着什么。

或者我只是做错了什么?有没有办法做我想做的事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-21 14:38:02

我不确定为什么会发生这种情况,但你可以这样做

代码语言:javascript
复制
INSERT INTO C
  SELECT NEW.*, B.*
    FROM B
    WHERE B.key = NEW.key   
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41774415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档