不能在触发器WHEN条件postgresql中使用子查询

问题描述 投票:0回答:2

我想在 postgresql 9.2.4 WHEN 子句中使用子查询。 它抱怨我不能在触发 WHEN 条件时使用子查询。

这是我的代码

CREATE TRIGGER BeerTrig
AFTER INSERT ON Sells
FOR EACH ROW
WHEN (NEW.beer NOT IN (SELECT name FROM Beers))
    EXECUTE PROCEDURE insertNewBeer();

有没有解决方法如何在when子句中进行子查询?

提前非常感谢

postgresql-9.2
2个回答
1
投票

您可以始终调用 insertNewBeer() 并决定是否实际插入一行。


0
投票

是的,我已经看这个有一段时间了。看起来像在postgres中,我们只能在使用NEW和OLD时进行简单的检查,但我们不能在when中运行子查询。在这些情况下,您始终必须调用该函数并在那里运行查询。

© www.soinside.com 2019 - 2024. All rights reserved.