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