Postgresql 获取函数DDL命令
为了进行版本控制,我需要获取数据库中每个函数的DDL。是查询,但它仅适用于公共架构中的函数。当我试图使用它来创建公共模式中存在的函数并匹配模式时,我得到一个错误,即子查询返回的行太多 通过使用此查询检查pg_proc中的所有值:Postgresql 获取函数DDL命令,postgresql,stored-procedures,postgresql-9.2,Postgresql,Stored Procedures,Postgresql 9.2,为了进行版本控制,我需要获取数据库中每个函数的DDL。是查询,但它仅适用于公共架构中的函数。当我试图使用它来创建公共模式中存在的函数并匹配模式时,我得到一个错误,即子查询返回的行太多 通过使用此查询检查pg_proc中的所有值: select * from pg_proc where proname = 'match_group_1_3_2'; 只有更改的值才是空间: 如何区分两个(或多个)功能?如果它们在同一个模式中但具有不同的参数,如何区分它们?(通过过载) 由于性能问题,我需要使用本机
select * from pg_proc where proname = 'match_group_1_3_2';
只有更改的值才是空间:
如何区分两个(或多个)功能?如果它们在同一个模式中但具有不同的参数,如何区分它们?(通过过载)
由于性能问题,我需要使用本机postgres目录,而不是ANSI类型。还有更多信息可以提供给您。您可以从系统表中获取架构名称: 这应该可以在数据库中的任何模式中找到函数。还有更多信息可以提供给您。
您可以从系统表中获取架构名称:
这应该可以在数据库中的任何模式中找到函数。这正是我要查找的。谢谢我在探索schema.routines的信息,但没有标题和参数部分。哈哈,这正是我要找的。谢谢我在探索schema.routines的信息,但没有标题和参数部分。哈哈。
SELECT n.nspname AS schema_name
,p.proname AS function_name
,pg_get_functiondef(p.oid) AS func_def
,pg_get_function_arguments(p.oid) AS args
,pg_get_function_result(p.oid) AS result
FROM pg_proc p
JOIN pg_namespace n ON n.oid = p.pronamespace
WHERE p.proname ILIKE '%match_group_1_3_2%';