gpt4 book ai didi

postgresql - Postgres 覆盖系统函数

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

是否可以使用用户定义的函数覆盖 Postgres 系统函数?

我创建了一个用户定义函数“substr”,但它仅在我指定架构名称时才有效,否则它使用系统函数“substr”。

有没有办法覆盖系统函数“substr”并使用我的用户定义函数“substr”而无需使用架构名称?

原因是我希望现有代码库具有与 PG 中的 Oracle substr 相同的功能。

最佳答案

是的,您可以这样做,但您必须配置search_path,以便它在您的函数的架构之后显式包含pg_catalog:

SET search_path = myfuncs, pg_catalog;

请注意,每个人都可以更改 search_path,因此您的解决方案依赖于无人更改参数。此外,可以使用自定义 search_path 定义函数,这将覆盖您的设置。

这可能会导致与恢复 pg_dump 相结合的意外情况,这会强制 search_path 为空。我认为你的想法不是很稳健,最好明确地命名架构。

关于postgresql - Postgres 覆盖系统函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70196519/

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