gpt4 book ai didi

postgresql - 获取调用某个函数的所有触发器

转载 作者:行者123 更新时间:2023-12-03 08:40:16 24 4
gpt4 key购买 nike

因此,插入违反了约束,因为触发器在这种情况下不应该修改数据。

事实是,我已经禁用了我认为导致此问题的触发器,并且该函数仍然被调用。

如何才能最好地获得我所缺少的触发因素?

请注意,该函数是在触发函数内调用的,因此

SELECT * FROM information_schema.triggers WHERE action_statement LIKE '%my_function%';

不返回任何内容;

最佳答案

要查找哪个触发器使用某个触发器函数,请查询目录:

SELECT tgname,
tgrelid::regclass
FROM pg_trigger
WHERE tgfoid = 'my_trigger_function'::regproc;

如果你所说的函​​数不是真正的触发函数,而是从触发函数调用的,事情会更困难。

由于 cinternal 之外的语言中的函数存储为字符串,因此 PostgreSQL 不会跟踪函数之间的依赖关系。

所以在这种情况下你能做的最好的事情就是子字符串搜索:

SELECT oid::regprocedure
FROM pg_proc
WHERE prosrc ILIKE '%myfuncname%';

关于postgresql - 获取调用某个函数的所有触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62937871/

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