Query goal: | Find rule names that are used in a database in more than one schema. Different things should have different names. But here different rules have the same name. Also make sure that this is not a duplication. |
Notes about the query: | In case of the string_agg function, the line break (br) tag is used as a part of the separator for the better readability in case the query result is displayed in a web browser. |
Query type: | General (Overview of some aspect of the database.) |
Query license: | MIT License |
Data source: | system catalog only |
SQL query: | Click on query to copy it
SELECT rulename, Count(*) AS number_of_occurrences, Count(DISTINCT schemaname) AS number_of_different_schemas, string_agg(schemaname || '.' || tablename, ';<br>' ORDER BY schemaname, tablename) AS tables FROM pg_rules GROUP BY rulename HAVING Count(*)>1 AND Count(DISTINCT schemaname)>1 ORDER BY Count(*) DESC, rulename; |
Collection name | Collection description |
---|---|
Find problems by overview | Queries that results point to different aspects of database that might have problems. A human reviewer has to decide based on the results as to whether there are problems or not . |
Category name | Category description |
---|---|
Comfortability of database evolution | Queries of this category provide information about the means that influence database evolution. |
Domains | Queries of this category provide information about reusable specifications of column properties. |
Naming | Queries of this category provide information about the style of naming. |
Triggers and rules | Queries of this category provide information about triggers and rules in a database. |