--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