postgresql 找出当前的所有触发器和它们的ddl
时间: 2024-02-28 11:54:31 浏览: 15
可以使用以下的 SQL 语句来找出当前的所有触发器和它们的 DDL:
```sql
SELECT
t.tgname AS trigger_name,
pg_catalog.pg_get_triggerdef(t.oid, true) AS trigger_ddl
FROM
pg_catalog.pg_trigger t
WHERE
t.tgisinternal = false;
```
这个 SQL 语句会从 `pg_trigger` 系统目录表中查询所有非内部触发器的名称和 DDL,其中 `pg_get_triggerdef` 函数会返回触发器的 DDL 语句。
相关问题
postgresql 找出当前的所有存储过程和函数和它们的ddl
要找出 PostgreSQL 数据库中当前的所有存储过程和函数以及它们的 DDL(数据定义语言),可以使用以下 SQL 查询语句:
```
SELECT
pg_get_functiondef(p.oid) AS ddl
FROM
pg_proc p
WHERE
p.proname NOT LIKE 'pg_%'
AND p.proname NOT LIKE 'sql_%'
ORDER BY
p.proname;
```
这条 SQL 查询语句将返回一个结果集,其中包含每个存储过程和函数的 DDL。请注意,此查询将排除以“pg_”和“sql_”开头的函数,因为这些函数是 PostgreSQL 系统函数,而不是用户定义的函数。
如果您只想查看某个特定存储过程或函数的 DDL,可以使用以下 SQL 查询语句:
```
SELECT
pg_get_functiondef('function_name'::regproc) AS ddl;
```
将“function_name”替换为您要查看的函数或存储过程的名称。该查询将返回该函数或存储过程的 DDL。
postgresql 找出当前的所有存储过程和函数
要找出 PostgreSQL 数据库中当前的所有存储过程和函数,可以使用以下 SQL 查询语句:
```
SELECT
proname AS procedure_name,
pg_get_function_identity_arguments(oid) AS arguments,
pg_get_functiondef(oid) AS definition
FROM
pg_proc
WHERE
proname NOT LIKE 'pg_%'
AND proname NOT LIKE 'sql_%'
ORDER BY
proname;
```
这条 SQL 查询语句将返回一个结果集,其中包含每个存储过程和函数的名称、参数和定义。请注意,此查询将排除以“pg_”和“sql_”开头的函数,因为这些函数是 PostgreSQL 系统函数,而不是用户定义的函数。