Coluna de identidade Oracle

Coluna de identidade Oracle
Neste tutorial, você aprenderá a usar e trabalhar com a coluna Oracle Identity para definir uma coluna numérica autogenerada em uma tabela.

Se você já trabalhou com bancos de dados MySQL, você pode estar familiarizado com a coluna Auto_increment. No Oracle, usamos uma coluna de identidade para permitir que o mecanismo de banco de dados gere automaticamente um valor numérico para cada linha adicionada à tabela em um intervalo específico.

Coluna de identidade Oracle

A coluna de identidade Oracle está disponível na versão 12c e acima. A coluna de identidade gera automaticamente um valor numérico para cada linha inserida na tabela.

Como o mecanismo de banco de dados gera um valor exclusivo para cada linha adicionada à tabela, ele funciona como uma chave primária substituta no banco de dados.

No Oracle, definimos uma coluna de identidade usando a sintaxe abaixo:

Gerado [sempre | Por padrão [no null]]
Como identidade [(identity_options)]

Os parâmetros da declaração, como visto acima, incluem o seguinte:

  1. Gerado - começamos com a palavra -chave gerada, onde os valores são gerados automaticamente pelo mecanismo de banco de dados.
  2. Sempre - da mesma forma, esse valor garante que apenas o mecanismo de banco de dados possa adicionar valores à coluna. Tentar adicionar valores manualmente resultará em um erro.
  3. Por padrão - isso causará um erro se você fornecer um valor nulo para a coluna.
  4. Por padrão no NULL - Oracle gerará um valor em vez de retornar um erro na entrada nula.
  5. Como identidade - isso define que esta é uma coluna de identidade.
  6. Começar com valor - define o valor inicial usado para a coluna de identidade. Por padrão, o valor começará em 1.
  7. Incremento por valor - define o valor do intervalo entre os valores gerados. Por padrão, a função usará um intervalo de 1.
  8. Cache - define o número de valores que o mecanismo de banco de dados gerará com antecedência para aumentar o desempenho. Esta opção é útil quando você precisa autogerar muitos registros.

Colunas de identidade Oracle

Vamos descobrir exemplos básicos de como usar a coluna de identidade nos bancos de dados Oracle.

Oracle Crie coluna de identidade

A maneira mais comum e recomendada de criar uma coluna de identidade para uma tabela é durante a criação.

Um exemplo abaixo demonstra como podemos conseguir isso:

Crie produtos de tabela (
Product_id Número gerado sempre como identidade,
product_name varchar2 (255) não nulo,
Número de quantidade não é verificação nula (quantidade> 0),
número de preço,
Chave primária (product_id)
);

A declaração acima cria uma tabela chamada produtos com uma coluna de identidade de product_id.

Podemos então inserir alguns registros de amostra na tabela como:

Inserir em produtos (product_name, quantidade, preço) valores ('Microsoft Volterra', 0, 599);

Nesse caso, não especificamos o valor para a coluna Product_id na tabela acima. Isso permitirá que o mecanismo de banco de dados gerar valores para as colunas adicionadas automaticamente. Como mencionado, o Oracle começará no valor 1 e o incremento em 1 para cada linha adicionada.

Como mencionado, tentar agregar um valor para a coluna de identidade resultará em um erro:

Inserir em produtos (product_id, product_name, quantidade, preço) valores (2, 'Microsoft Volterra', 10, 599);

Erro resultante:

Erro SQL: ORA-32795: Não é possível inserir em uma coluna de identidade sempre gerada

Isso ocorre porque a coluna de identidade está definida para gerar sempre.

Exemplo 2 - Identidade Oracle gerada por padrão.

Também podemos alterar a coluna de identidade de gerada sempre para gerada por padrão como:

Crie produtos de tabela (
Número Product_id gerado por padrão como identidade,
product_name varchar2 (255) não nulo,
Número de quantidade não é verificação nula (quantidade> 0),
número de preço,
Chave primária (product_id)
);

Nesse caso, podemos adicionar manualmente um valor à coluna product_id.

Inserir em produtos (product_id, product_name, quantidade, preço) valores (1, 'Microsoft Volterra', 0, 599);

Da mesma forma, se não fornecermos um valor para a coluna, o mecanismo de banco de dados o gerará automaticamente.

Você não pode inserir um valor nulo em uma coluna de identidade, conforme definido acima.

Exemplo 3
Também podemos definir o início e os valores de intervalo durante a criação da tabela, como mostrado:

Crie produtos de tabela (
Product_id Número gerado por padrão como identidade inicia com 10 incremento em 2,
product_name varchar2 (255) não nulo,
Número de quantidade não é verificação nula (quantidade> 0),
número de preço,
Chave primária (product_id)
);

Nesse caso, os valores autogenerados começarão em dez e incrementos em 2 para cada nova linha adicionada à tabela.

Pontos a serem observados

Embora uma coluna de identidade forneça uma conveniência pesada ao trabalhar com um grande conjunto de dados, ela vem com restrições. Esses incluem:

  1. Uma tabela só pode segurar uma coluna de identidade.
  2. Uma coluna de identidade não pode conter uma restrição padrão.
  3. Uma tabela de criação não pode herdar uma coluna de identidade como instrução SELECT.
  4. O valor de uma coluna de identidade pode ser apenas um tipo numérico.

Conclusão

Neste post, você descobriu os vários métodos e técnicas de trabalho com a coluna de identidade nos bancos de dados Oracle.