-- Verificando locks
SELECT relation::regclass, mode, granted
FROM pg_locks
WHERE relation IN (
SELECT oid
FROM pg_class
WHERE relname = 'sua_tabela'
);
2. Dependências
-- Verificando referências
SELECT
tc.table_schema,
tc.table_name,
kcu.column_name
FROM information_schema.table_constraints tc
JOIN information_schema.key_column_usage kcu
ON tc.constraint_name = kcu.constraint_name
WHERE tc.constraint_type = 'FOREIGN KEY'
AND kcu.referenced_table_name = 'sua_tabela';
Padrões de Uso
PATTERN_MASTER apresenta: "Padrões comuns de utilização"
1. Limpeza Periódica
-- Procedure de limpeza
CREATE PROCEDURE limpar_logs()
LANGUAGE SQL
AS $$
TRUNCATE TABLE
system_logs,
audit_logs,
error_logs;
$$;
2. Reset de Ambiente
-- Script de reset
BEGIN;
-- Desativa foreign key checks
SET CONSTRAINTS ALL DEFERRED;
-- Limpa todas as tabelas
TRUNCATE TABLE
tabela1,
tabela2,
tabela3
CASCADE;
-- Reativa constraints
SET CONSTRAINTS ALL IMMEDIATE;
COMMIT;
Conclusão
TRUNCATE_SPECIALIST conclui: "TRUNCATE é uma ferramenta poderosa para limpeza de dados, mas deve ser usada com conhecimento e cautela."