Query goal: | Find trigger names that are used in a database in more than one schema. Different things should have different names. But here different triggers 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: | INFORMATION_SCHEMA+system catalog |
SQL query: | Click on query to copy it
WITH triggers AS (SELECT tgname AS trigger_name, nspname AS trigger_schema, c.relname as table_name FROM pg_trigger t INNER JOIN pg_class c ON t.tgrelid=c.oid INNER JOIN pg_namespace n ON c.relnamespace=n.oid WHERE nspname NOT IN (SELECT schema_name FROM INFORMATION_SCHEMA.schemata WHERE schema_name<>'public' AND schema_owner='postgres' AND schema_name IS NOT NULL) AND tgisinternal='f') SELECT trigger_name, Count(*) AS number_of_occurrences, Count(DISTINCT trigger_schema) AS number_of_different_schemas, string_agg(trigger_schema || '.' || table_name, ';<br>' ORDER BY trigger_schema, table_name) AS tables FROM triggers GROUP BY trigger_name HAVING Count(*)>1 AND Count(DISTINCT trigger_schema)>1 ORDER BY Count(*) DESC, trigger_name; |
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. |
Duplication of implementation elements | Queries of this catergory provide information about the duplication of the database objects. |
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. |