Эквивалентно `pg_rules` в`information_schema`
Я знаю, information_schema
является стандартом SQL, и RULES
являются расширениями Postgres SQL
Тем не менее, есть ли способ перечислить все доступные правила, используя information_schema
?
2 ответа
Решение
Нет, согласно документации:
Однако представления информационной схемы не содержат информации о специфических для 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