gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 11:42:41 24 4
gpt4 key购买 nike

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

我的想法是,AFTER INSERT 函数应该允许我将"new"行中的值作为参数传递,以便在表 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 并不认为 AFTER INSERT/UPDATE 意味着我认为的意思。

或者也许我只是做错了什么?有什么方法可以做我想做的事吗?

最佳答案

不确定为什么会发生,但您可以按照以下方式做一些事情

INSERT INTO C
SELECT NEW.*, B.*
FROM B
WHERE B.key = NEW.key

关于PostgreSQL AFTER INSERT 触发器,并引用插入的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41774415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com