Postgresql 相当于“信息”模式中的“pg_规则”`

Postgresql 相当于“信息”模式中的“pg_规则”`,postgresql,rules,Postgresql,Rules,我知道,信息模式是SQL标准,规则是PostgresSQL扩展 但是,是否有一种方法可以使用信息模式列出所有可用的规则?否,根据: 信息架构视图没有, 但是,请包含有关的信息 PostgreSQL特定功能;到 询问您需要查询的内容 系统目录或其他 PostgreSQL特定视图 请试一试 SELECT n.nspname AS view_schema, c.relname AS view_name, r.rulen

我知道,信息模式是SQL标准,规则是PostgresSQL扩展

但是,是否有一种方法可以使用信息模式列出所有可用的规则?

否,根据:

信息架构视图没有, 但是,请包含有关的信息 PostgreSQL特定功能;到 询问您需要查询的内容 系统目录或其他 PostgreSQL特定视图

请试一试

SELECT
  n.nspname                   AS view_schema,
  c.relname                   AS view_name,
  r.rulename                  AS rule_name,
  pg_get_ruledef(r.oid, true) AS compiled_definition,
  d.description               AS full_description,
  CASE ev_type::integer
      WHEN 2 THEN 'update'
      WHEN 3 THEN 'insert'
      WHEN 4 THEN 'delete'
  END AS rule_event

FROM
  pg_rewrite AS r
  LEFT JOIN pg_class AS c ON c.oid = r.ev_class
  LEFT JOIN pg_namespace AS n ON n.oid = c.relnamespace
  LEFT JOIN pg_description AS d ON r.oid = d.objoid
WHERE TRUE
AND n.nspname != 'pg_catalog'
AND r.rulename <> '_RETURN' AND relkind = 'v'
ORDER BY r.rulename

请停止在标题中写标签。@Tomalak,我正在标题中写标签,而问题的类型可能会有误导性。例如,为什么toString不被称为asString,它可以用多种语言表达。我怀疑如果没有标题中提到的Postgres,问题可能就不那么清楚了。Stack Overflow已经有了标记功能。这就是标记用来指示问题主题的地方。在标题中重复这些标记是多余的,反而破坏了具有一致的、可索引的标记功能的整个目的。@Tomalak,这些标记不是很明显,尤其是当您有多个标记时。如果你只需要搜索标签来理解这个问题是什么意思,Java的toString,还是C的?这不好。如果有人复制粘贴问题怎么办?他们通常不会费心复制标签。我认为,即使没有看到标签,问题也必须连贯一致。在我看来,标签是为了简化索引,而不是为问题添加信息。不管怎样,它们都是,在标题中写标签既多余又不受鼓励。干杯