quinta-feira, 23 de janeiro de 2020

Gerando Script para Habilitar e Desabilitar Constraints de Tabela

Para melhor manusear tabelas de uma base de dados, de forma mais veloz, sem ter que ficar percorrendo as outras tabelas que são referenciadas na primeira, é possivel desabilitar as constraints. Atenção para não gerar dados corrompidos conforme a operação que for realizada depois disso.

Rode o script abaixo preenchendo o nome da tabela e o owner e na saída serão gerados os scripts a serem executados.




  1. SELECT 'alter table '||cons.owner||'.'||cons.table_name||' disable constraint '||cons.constraint_name||'; ' -- para habilitar so trocar o desable para enable
  2.  
  3. FROM dba_constraints      col,
  4.  
  5.    dba_constraints       cons
  6.  
  7. WHERE cons.r_owner = col.owner
  8.  
  9. AND cons.r_constraint_name = col.constraint_name
  10.  
  11. AND cons.constraint_type = 'R'
  12.  
  13. AND col.table_name IN( 'TB_CARROS') -- colocar tabelas que vai truncar aqui
  14.  
  15. AND col.owner = 'NOME_DO_ACESSO'
  16.  
  17. ORDER BY cons.table_name;



A partir deste script é possível criar um script único para habilitar ou desabilitar todas as constraints da base de dados.

Esse tipo de procedimento é interessante para iniciar uma limpeza geral na base de dados antes da subida em produção quando nem todas as tabelas devem ser limpas.