Postgresql 有没有办法在Postgres中执行有条件触发或不触发先前设置的触发函数的命令?

Postgresql 有没有办法在Postgres中执行有条件触发或不触发先前设置的触发函数的命令?,postgresql,triggers,plpgsql,google-cloud-sql,Postgresql,Triggers,Plpgsql,Google Cloud Sql,例如,我有一个保存用户帖子信息的posts表,我有一个postlikes表,它保存每个帖子的like 无论何时添加(插入)或删除(删除)记录,我都为postlikes设置了一个触发器。以下是用户与post不同时的触发器(删除记录): 向调用上述函数的删除事件添加触发器: CREATE TRIGGER on_post_unlike AFTER DELETE ON postlikes FOR EACH ROW EXECUTE FUNCTION decrement_post_like_count()

例如,我有一个保存用户帖子信息的
posts
表,我有一个
postlikes
表,它保存每个帖子的like

无论何时添加(插入)或删除(删除)记录,我都为
postlikes
设置了一个触发器。以下是用户与post不同时的触发器(删除记录):

向调用上述函数的删除事件添加触发器:

CREATE TRIGGER on_post_unlike 
AFTER DELETE ON postlikes
FOR EACH ROW EXECUTE FUNCTION decrement_post_like_count();
基本上,每当从
postlikes
表中删除记录时,触发器都会将
posts
表中相应的post中的like计数(lks)减少1。还有另一个触发器设置,每当在
postlikes
表中添加记录时,它会增加
posts
表中相应post的计数,但它是类似的代码,所以我不在这里显示它

但是现在我希望能够在不调用触发器的情况下在
postlikes
表上执行DELETE,但是我希望保持触发器功能良好。这是因为我想实现一个post delete函数,该函数应该删除post及其相应的类。当然,我不想因为我们要删除帖子而徒劳地触发

那么,是否有一个a可能设置的标志不会触发该函数,如果没有设置该标志,那么它将触发该函数

有一个类似的帖子,但我不确定我是否想使用这种变通方法,对于这种情况来说,这是非常乏味或不自然的


我愿意接受建议和其他解决方案。

DELETE!=插入!=更新。你的扳机可以选择何时开火。(该函数可以访问PG_TRG(sp?)对不起,我忘了显示将触发器链接到事件的代码的其他部分。修正了这个问题。因此,我有一个INSERT触发器和另一个DELETE触发器(如问题所示)。您可以选择在DELETE事件上调用不同的函数。或者让函数区分不同类型的事件。我不确定你的意思,如果我想删除一行,我只能调用一个命令delete,对吗?那么,是否还有其他命令/事件可用于删除记录/行?
CREATE TRIGGER on_post_unlike 
AFTER DELETE ON postlikes
FOR EACH ROW EXECUTE FUNCTION decrement_post_like_count();