我该如何使用SQL列出所有的PostgreSQL规则?

4

我有一个只能使用 SQL 访问的 Postgres 数据库(我的意思是我可以使用 psql 连接)。我需要禁用一些规则,进行维护,然后重新启用它们。我想确保在所有这些操作之后,所有规则都已启用。如何使用 SQL 查询列出它们?


2
取决于您想要检查哪些规则,但这可能有助于表格:https://dev59.com/tHVD5IYBdhLWcg3wDG_m 或者也许:select * from pg_rules; 将获取规则。 - xQbert
1个回答

10

类似这样的内容应该可以帮助你入门:

select n.nspname as rule_schema, 
       c.relname as rule_table, 
       case r.ev_type  
         when '1' then 'SELECT' 
         when '2' then 'UPDATE' 
         when '3' then 'INSERT' 
         when '4' then 'DELETE' 
         else 'UNKNOWN' 
       end as rule_event
from pg_rewrite r  
  join pg_class c on r.ev_class = c.oid 
  left join pg_namespace n on n.oid = c.relnamespace 
  left join pg_description d on r.oid = d.objoid 

end as rule_event 后面添加 , rulename as rule_name 对我也很有帮助。 - rolling_codes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接