Autoincremento Flashcards

(23 cards)

1
Q

O que é um campo de autoincremento (IDENTITY) no Oracle?

A

É um campo que incrementa automaticamente o valor do inteiro a cada nova inserção na tabela.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Como criar um campo de autoincremento no Oracle?

A

Usamos a cláusula GENERATED BY DEFAULT ON NULL AS IDENTITY ao criar a tabela.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

O que acontece se omitirmos o valor do campo IDENTITY ao inserir um novo registro?

A

O Oracle preenche automaticamente o campo com o próximo valor disponível.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

O que acontece com o autoincremento ao apagarmos linhas de uma tabela?

A

O autoincremento continua a partir do último valor utilizado, ignorando “buracos” na sequência.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

É recomendado “forçar” um valor específico para o campo IDENTITY? Por quê?

A

Não é recomendado, pois pode causar problemas se o valor já existir ou se for maior que o próximo valor esperado pelo autoincremento.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

O que significa informar o ID como nulo ao inserir um novo registro?

A

É o mesmo que omiti-lo, permitindo que o Oracle gere o valor automaticamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qual o tipo de dado recomendado para um campo IDENTITY?

A

Inteiro (NUMBER).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Quantos campos IDENTITY podemos ter por tabela no Oracle?

A

Apenas um.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

O que acontece se tentarmos inserir um valor para o campo IDENTITY que já existe na tabela?

A

Ocorre um erro de restrição (violação de chave primária).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Se “forçarmos” um valor alto para o campo IDENTITY e depois omitirmos o valor em uma nova inserção, qual será o próximo valor gerado automaticamente?

A

O valor será o próximo número inteiro após o último valor gerado automaticamente (o Oracle mantém um controle interno do último valor usado).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qual a diferença entre omitir o campo ID em um INSERT e inserir NULL no campo ID?

A

Nenhuma. Para o Oracle, inserir NULL em um campo IDENTITY tem o mesmo efeito de omitir o campo, fazendo com que o valor seja gerado automaticamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Podemos inserir valores menores que o último valor do contador interno?

A

Sim, desde que não viole a restrição de chave primária.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

O que significa a expressão GENERATED BY DEFAULT na definição de um campo IDENTITY?

A

Significa que o valor será gerado automaticamente, a menos que um valor seja explicitamente fornecido na instrução INSERT.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

O que significa a expressão ON NULL na definição de um campo IDENTITY?

A

Significa que o valor será gerado automaticamente apenas se o valor fornecido na instrução INSERT for NULL.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

O que significa a expressão AS IDENTITY na definição de um campo IDENTITY?

A

Indica que o campo é um campo de identidade (autoincremento).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Qual é a principal vantagem de usar campos IDENTITY?

A

Simplifica a criação de chaves primárias e garante a unicidade dos registros na tabela.

17
Q

Qual é a principal desvantagem de usar campos IDENTITY?

A

A falta de controle sobre a sequência de valores gerados, o que pode ser um problema em algumas situações específicas.

18
Q

Em que situações seria interessante “forçar” o valor de um campo IDENTITY?

A

Em situações de migração de dados, onde é necessário preservar os valores originais das chaves primárias.

19
Q

Que cuidados devemos ter quando usamos um campo de autoincremento?

A

Evitar incluir um valor no campo autoincremento com valor superior ao maior valor da tabela, quando o mesmo for chave primária.
Se formos incluir um valor no campo de autoincremento que seja maior que o valor final do autoincremento e, se este campo for chave primária, quando o autoincremento chegar a este valor, teremos um erro de integridade.

20
Q

O que acontece se um campo é definido como NOT NULL e você tenta inserir um registro sem especificar um valor para ele?

A

Ocorre um erro, pois o campo é obrigatório.

21
Q

Como definir a data e hora atual como valor padrão para um campo DATE?

A

DEFAULT ON NULL SYSDATE

22
Q

Qual a função da cláusula GENERATED BY DEFAULT ON NULL AS IDENTITY?

A

Configura um campo como auto-incremento, gerando automaticamente um novo valor quando o valor inserido é nulo.

23
Q

No momento da criação da tabela, foi definido um padrão para um campo. Que comportamento este campo tem durante um INSERT?

A

Se o campo não estiver no comando INSERT, o valor que será incluído será o padrão definido na criação da tabela.
O campo estará preenchido com o seu padrão, caso ele não seja declarado no INSERT.