--atualizada vw_find_seq -- view para procuar as sequencias DROP VIEW IF EXISTS vw_find_seq; CREATE OR REPLACE VIEW vw_find_seq AS ( SELECT c.oid AS oid_seq, n.nspname AS esquema, c.relname AS seq, pg_catalog.pg_get_userbyid(c.relowner) AS dono, pg_catalog.obj_description(c.oid, 'pg_class') AS comentario, reltuples::integer AS registros FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.relkind = 'S' -- r = ordinary table, i = index, S = sequence, v = view, c = composite type, t = TOAST table AND n.nspname NOT IN ( 'pg_catalog', 'information_schema', 'pg_toast' ) ORDER BY n.nspname, c.relname ); COMMENT ON VIEW vw_find_seq IS ' Autor: O Peregrino View que procura por esquemas, sequencia, comentários, donos no banco --exemplos: --busca simples (tudo) SELECT * FROM vw_find_seq ; --busca por esquema SELECT * FROM vw_find_seq WHERE esquema ILIKE \\\'esquema\\\' ; --busca por tabelas SELECT * FROM vw_find_seq WHERE seq ILIKE \\\'%seq%\\\' ; ' ; --incrementada --View que retorna uma query com o objetivo de descobrir qual o maior id de todas as sequenciasa de um banco de dados. DROP VIEW IF EXISTS vw_max_id_seq CASCADE; CREATE OR REPLACE VIEW vw_max_id_seq AS ( ( SELECT 'SELECT ' || '\''||x.esquema||'.'||x.seq||'\'' || ' AS esquema_seq' || ',' || ' (SELECT last_value FROM ' || x.esquema || '.' || x.seq || ')::BIGINT AS maior_id_seq UNION ' AS maior_ids_seq FROM ( SELECT * FROM vw_find_seq WHERE esquema NOT IN ('z_deprecated') AND seq NOT ILIKE '@%' ORDER BY esquema ASC , seq ASC ) AS x ) UNION ( SELECT 'SELECT \'ZZZ-FIM-USADO-PARA-CONTROLE\' AS esquema_seq, 0::BIGINT AS maior_id_seq ORDER BY 2 DESC;' AS maior_ids_seq ) ORDER BY 1 ASC ); COMMENT ON VIEW vw_max_id IS ' Autor: O Peregrino View que retorna uma query com o objetivo de descobrir qual o maior id de todas a tabela de um banco de dados -- O resultado desta view gera um nova query para obter o resultado -- desejado. -- Esta consulta pega o maior id de todas tabelas de um banco. -- É gerado apenas um coluna como resultado da view com query. -- para obter o valor maximo gerado de um id em uma sequencia, de todas as tabelas de um banco. -- Dica para execução: -- No pgadmin selecione CTRL + A, CTRL + C no resultado da query, -- Abrir uma nova query, CTRL + V, CTRL + HOME, -- CTRL + F, substituir " por nada, recomendado, em vez de " ser |, se estiver configurado -- Clicar em (Substituir TODOS) e depois em (Fechar) -- Executar query (f5) -- Será retornada 2 colunas: esquema_seq e o maior_id baseado na sequencia -- Essa view vw_max_id_seq usa a view vw_find_seq --SELECT * FROM vw_max_id_seq; ' ;
DBA, MySql, Oracle, Postgres, SQL Server, DB2, BI, TI, Business Intelligence, Data Science, Machine Learning, IoT, Arduino
segunda-feira, 4 de outubro de 2010
Mais views para administração do PostgreSQL
Mais views para administração do PostgreSQL
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário