Resumo: neste tutorial, você irá aprender como usar a coluna de identidade Oracle para definir facilmente uma coluna numérica gerada automaticamente para uma tabela.
Introdução ao Oracle identity coluna
Oracle 12c introduziu uma nova forma, que permite a você definir uma coluna de identidade de uma tabela, que é semelhante ao AUTO_INCREMENT
coluna no MySQL ou IDENTITY
coluna no SQL Server.
a coluna da identidade é muito útil para a coluna da chave primária substituta., Quando você insere uma nova linha na coluna identidade, Oracle auto-gera e insere um valor sequencial na coluna.
para definir uma coluna de identidade, você usa a cláusula de identidade como mostrado abaixo:
primeiro, a palavra-chaveGENERATED
é obrigatória.
Em segundo lugar, poderá indicar uma opção para gerar valores de identidade:
-
GENERATED ALWAYS
: o Oracle gera sempre um valor para a coluna identidade. A tentativa de inserir um valor na coluna identidade irá causar um erro., GENERATED BY DEFAULT
: Oracle gera um valor para a coluna de identidade se você não fornecer nenhum valor. Se você fornecer um valor, a Oracle irá inserir esse valor na coluna identidade. Para esta opção, Oracle irá emitir um erro se você inserir um valor nulo na coluna identidade.-
GENERATED BY DEFAULT ON NULL
: Oracle gera um valor para a coluna de identidade, se você fornecer um valor NULO ou nenhum valor.
terceiro, você pode ter um número de opções para a coluna identidade.,
-
START WITH initial_value
controla o valor inicial a usar para a coluna de identidade. O valor inicial padrão é 1. INCREMENT BY internval_value
define o intervalo entre os valores gerados. Por padrão, o valor do intervalo é 1.- define um número de valores que a Oracle deve gerar de antemão para melhorar o desempenho. Você usa esta opção para a coluna que tem um elevado número de inserções.
exemplos de coluna de identidade Oracle
vamos tomar alguns exemplos de usar as colunas de identidade Oracle.,
A) GERADO SEMPRE exemplo
a instrução A seguir cria uma tabela chamada identity_demo
que consiste de uma coluna de identidade:
a instrução A seguir insere uma nova linha identity_demo
tabela:
por que nós não especificar um valor para o id
coluna, Oracle gerado automaticamente um valor seqüencial, a partir de 1.,
a instrução A seguir tenta inserir um valor para o id
coluna de identidade:
Oracle emitido um erro:
uma Vez que o id coluna foi definida como GENERATED ALWAYS
, ele não podia aceitar qualquer valor fornecido.,
B) GENERATED BY DEFAULT example
Let’s change the id
column to GENERATED BY DEFAULT
:
The following statement inserts a new row into the identity_demo
table:
It worked as expected.,
a instrução A seguir insere uma nova linha identity_demo
tabela com um valor fornecido para o id
coluna:
neste exemplo, a Oracle utilizado o valor fornecido e inserido-lo para a mesa.,Primeiro, recria o identity_demo
tabela cujos id
coluna é definida como a coluna de identidade com o valor inicial começa a partir de 100:
em Segundo lugar, inserir uma linha para o identity_demo
tabela:
o Terceiro, consulta de dados a partir de identity_demo
tabela:
Como você pode ver, o valor inicial de id
coluna é de 100, conforme especificado na identidade cláusula.,
e) INCREMENT BY option example
First, change the id column of the identity_demo
table that includes bothSTART WITH
andINCREMENT BY
options.
em Segundo lugar, inserir duas linhas em identity_demo
tabela:
o Terceiro, consulta de dados da tabela para verificar as pastilhas:
Como você pode ver, a primeira linha tem o valor de id 10. A segunda linha tem o valor id 20., Isto é o que definimos para a coluna id que deve começar com 10 e aumentar em 10 para a nova linha.
Oracle identity column restrictions
As colunas de identidade estão sujeitas às seguintes restrições:
- Cada tabela tem uma e apenas uma coluna de identidade.
- o tipo de dados da coluna de identidade deve ser um tipo de dados numéricos. o tipo de dados definido pelo Utilizador não pode ser utilizado com a cláusula de identidade.
- a coluna de identidade não é herdada pela declaração de
CREATE TABLE AS SELECT
., - a coluna de identidade não pode ter outra restrição
DEFAULT
. - o algoritmo de encriptação para colunas de identidade encriptadas pode ser inferido, pelo que deverá usar um algoritmo de encriptação forte.
- A restrição inline da coluna de identidade não deve entrar em conflito com a restrição
NOT NULL
eNOT DEFERRABLE
declarada pela cláusula de identidade.
neste tutorial, você aprendeu a usar a coluna de identidade do Oracle que lhe permite definir facilmente uma coluna numérica gerada automaticamente para uma tabela.,
- este tutorial foi útil?
- YesNo