如何使用SQL列出所有postgres规则?

时间:2013-11-20 14:50:09

标签: sql postgresql rule

我有一个只使用SQL访问的postgres数据库(我的意思是我可以使用psql进行连接)。我需要禁用一些规则,进行维护然后再启用它们。我想保证在完成所有这些操作后,所有规则都会启用。我怎么能用SQL查询列出它们?

1 个答案:

答案 0 :(得分:5)

这样的事情应该让你开始:

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