Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Qual é a razão / utilidade é usar a palavra-chave ENABLE nas instruções do banco de dados oracle


Constraint doc :


CREATE TABLE "EVALUATION" (
    "EVALUATION_ID" NUMBER(20, 0) NOT NULL ENABLE,

ENABLE/DISABLE indica que a restrição está ativada ou desativada. Por padrão ENABLE é usado.

Ativar cláusula Especifique ENABLE se desejar que a restrição seja aplicada aos dados na tabela.

CLÁUSULA DESATIVAR Especifique DISABLE para desabilitar a restrição de integridade. As restrições de integridade desabilitadas aparecem no dicionário de dados junto com as restrições habilitadas. Se você não especificar esta cláusula ao criar uma restrição, o Oracle ativará automaticamente a restrição.

As restrições são usadas para garantir a integridade dos dados, mas há cenários em que podemos precisar desativá-las.

Managing Integrity :

Desabilitando Restrições

Para impor as regras definidas pelas restrições de integridade, as restrições devem estar sempre habilitadas. No entanto, considere desabilitar temporariamente as restrições de integridade de uma tabela pelos seguintes motivos de desempenho:

  • Ao carregar grandes quantidades de dados em uma tabela

  • Ao realizar operações em lote que fazem grandes alterações em uma tabela (por exemplo, alterar o número de cada funcionário adicionando 1000 ao número existente)

  • Ao importar ou exportar uma tabela por vez

Nos três casos, desabilitar temporariamente as restrições de integridade pode melhorar o desempenho da operação, especialmente em configurações de data warehouse.

É possível inserir dados que violem uma restrição enquanto essa restrição estiver desabilitada. Assim, você deve sempre habilitar a restrição após concluir qualquer uma das operações listadas na lista de marcadores anterior.

Uso eficiente de restrições de integridade:um procedimento

O uso de estados de restrição de integridade na seguinte ordem pode garantir os melhores benefícios:

  1. Desativar estado.

  2. Execute a operação (carregar, exportar, importar).

  3. Habilite o estado de novavalidação.

    Alguns benefícios do uso de restrições nesta ordem são:

    • Nenhum bloqueio é realizado.

    • Todas as restrições podem ir para habilitar o estado simultaneamente.

    • A habilitação de restrições é feita em paralelo.

    • A atividade simultânea na mesa é permitida.

EDITAR:

A questão é por que usar óbvio palavra-chave quando está ativada por padrão:

Eu diria:
  1. Para maior clareza (regra Python EIBTI Explícito é melhor que implícito )
  2. Para completar
  3. Gosto pessoal e/ou convenção de codificação

Esta é a mesma categoria que:
CREATE TABLE tab(col INT NULL)

Por que usamos NULL se a coluna for anulável por padrão.