Campo autoincremento Flashcards

(40 cards)

1
Q

Qual tipo de dado deve ser o campo de autoincremento (IDENTITY)?

A

Inteiro (NUMBER).

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

Ao inserir um novo registro em uma tabela com campo IDENTITY, é obrigatório especificar o valor para esse campo?

A

Não, é possível omitir o campo ID no comando INSERT. O Oracle irá gerar o valor automaticamente.

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

Quantos campos IDENTITY podem existir por tabela no Oracle?

A

Apenas um.

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

O que acontece se tentarmos inserir um valor ID que já existe na tabela?

A

Ocorre um erro de restrição, pois o valor do ID deve ser único.

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

O que significa a cláusula GENERATED BY DEFAULT ON NULL AS IDENTITY?

A

Significa que, se o campo “ID” receber um valor nulo na inclusão de um dado, o Oracle deve substituir pelo autoincremento.

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

Qual é o nome dado ao campo de autoincremento no Oracle?

A

IDENTITY

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

Ao criar uma tabela com um campo IDENTITY, qual cláusula é utilizada para definir o autoincremento?

A

GENERATED BY DEFAULT ON NULL AS IDENTITY.

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

O que acontece se omitirmos o campo IDENTITY em um comando INSERT?

A

O Oracle automaticamente incrementa o valor do campo, utilizando o próximo número inteiro disponível na sequência.

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

É recomendado “forçar” o valor de um campo IDENTITY ao inserir um novo registro? Por quê?

A

Não é recomendado, pois pode bagunçar o controle automático do Oracle e causar erros de restrição no futuro.

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

Se um registro com o maior ID é excluído, o próximo registro inserido terá qual ID?

A

O próximo ID será o seguinte na sequência, pois o controle do incremento do campo IDENTITY é uma memória à parte e não está diretamente ligado aos valores existentes na tabela.

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

Tenho a seguinte tabela:

ID DESCRITOR
1 Produto A
2 Produto B
3 Produto C
Se eu executar o comando INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES (‘Produto D’), qual será o valor do campo ID para o novo registro?

A

4

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

Criei uma tabela com a seguinte definição:

CREATE TABLE TAB_IDENTITY (
ID NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY,
DESCRITOR VARCHAR(20)
);

O que acontecerá se eu tentar inserir um registro com o comando INSERT INTO TAB_IDENTITY (ID, DESCRITOR) VALUES (NULL, ‘Produto E’)?

A

O registro será inserido normalmente, e o valor do campo ID será gerado automaticamente pelo Oracle.

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

Tenho a seguinte tabela:

ID DESCRITOR
1 Produto A
2 Produto B
3 Produto C

Se eu executar o comando DELETE FROM TAB_IDENTITY WHERE ID = 2 e, em seguida, executar INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES (‘Produto D’), qual será o valor do campo ID para o novo registro?

A

4

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

Tenho a seguinte tabela:

ID DESCRITOR
1 Produto A
2 Produto B
3 Produto C

Se eu executar o comando INSERT INTO TAB_IDENTITY (ID, DESCRITOR) VALUES (5, ‘Produto E’) e, em seguida, executar INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES (‘Produto F’), qual será o valor do campo ID para o novo registro?

A

4

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

Tenho a seguinte tabela:

ID DESCRITOR
1 Produto A
2 Produto B
3 Produto C

Se eu executar o comando INSERT INTO TAB_IDENTITY (ID, DESCRITOR) VALUES (3, ‘Produto D’), o que acontecerá?

A

Ocorrerá um erro de restrição, pois já existe um registro com ID igual a 3.

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

Tenho a seguinte tabela:

ID DESCRITOR
1 Produto A
2 Produto B
3 Produto C
5 Produto E

Se eu executar o comando INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES (‘Produto F’), qual será o valor do campo ID para o novo registro?

A

6

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

Criei uma tabela com a seguinte definição:

CREATE TABLE TAB_IDENTITY (
ID NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY,
DESCRITOR VARCHAR(20)
);

Se eu tentar inserir dois registros com o comando INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES (‘Produto A’) e INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES (‘Produto A’), os dois registros terão o mesmo valor para o campo ID?

A

Não, cada registro terá um valor de ID diferente, pois o IDENTITY garante a unicidade dos valores.

18
Q

Tenho a seguinte tabela:

ID DESCRITOR
1 Produto A
2 Produto B
3 Produto C

Se eu executar o comando DELETE FROM TAB_IDENTITY WHERE ID = 1, DELETE FROM TAB_IDENTITY WHERE ID = 2, DELETE FROM TAB_IDENTITY WHERE ID = 3 e, em seguida, executar INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES (‘Produto D’), qual será o valor do campo ID para o novo registro?

19
Q

Tenho a seguinte tabela:

ID DESCRITOR
1 Produto A
2 Produto B
3 Produto C
5 Produto E

Se eu executar o comando INSERT INTO TAB_IDENTITY (ID, DESCRITOR) VALUES (4, ‘Produto D’) e, em seguida, executar INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES (‘Produto F’), qual será o valor do campo ID para o novo registro?

20
Q

Tenho a seguinte tabela:

ID DESCRITOR
1 Produto A
2 Produto B
3 Produto C

Se eu executar o comando INSERT INTO TAB_IDENTITY (ID, DESCRITOR) VALUES (10, ‘Produto D’) e, em seguida, executar INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES (‘Produto E’), qual será o valor do campo ID para o novo registro?

21
Q

Qual comando SQL você usaria para criar uma tabela chamada Produtos com um campo ID do tipo NUMBER como chave primária e IDENTITY, e um campo Nome do tipo VARCHAR(50)?

A

CREATE TABLE Produtos (
ID NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY,
Nome VARCHAR(50),
PRIMARY KEY (ID)
);

22
Q

Qual parte do comando CREATE TABLE define que o campo ID será um IDENTITY e que seu valor será gerado automaticamente quando for nulo?

A

GENERATED BY DEFAULT ON NULL AS IDENTITY

23
Q

Se você omitir a parte GENERATED BY DEFAULT ON NULL AS IDENTITY ao criar uma tabela com um campo ID do tipo NUMBER, o que acontecerá?

A

O campo ID será um campo NUMBER normal, sem a propriedade de autoincremento. Você precisará inserir os valores manualmente.

24
Q

Qual a importância de definir o campo ID como chave primária (PRIMARY KEY) em uma tabela com IDENTITY?

A

Garante que cada valor de ID seja único na tabela, evitando a duplicação de registros e permitindo a identificação individual de cada linha.

25
Após criar uma tabela com um campo IDENTITY, como você pode verificar se a tabela foi criada corretamente e se o campo IDENTITY está funcionando?
Insira alguns registros na tabela omitindo o campo ID e, em seguida, execute um SELECT * FROM nome_da_tabela para verificar se os valores de ID foram gerados automaticamente e de forma crescente.
26
Qual comando SQL você usaria para remover um registro da tabela TAB_IDENTITY onde o ID é igual a 5?
DELETE FROM TAB_IDENTITY WHERE ID = 5;
27
Após remover um registro com um determinado ID, o que acontece com o próximo valor IDENTITY gerado ao inserir um novo registro?
O IDENTITY continuará a gerar valores sequenciais, ignorando a lacuna criada pela remoção do registro anterior.
28
Se você remover todos os registros de uma tabela com um campo IDENTITY e, em seguida, inserir um novo registro, qual será o valor do ID para esse novo registro?
O valor do ID será 1, pois o contador do IDENTITY é reiniciado quando a tabela está vazia.
29
Remover um registro com um ID específico afeta a integridade de outros registros na tabela?
Não, a remoção de um registro não afeta outros registros, a menos que existam restrições de chave estrangeira (FOREIGN KEY) que dependam do ID removido.
30
É possível remover vários registros de uma tabela com IDENTITY usando um único comando DELETE? Dê um exemplo.
Sim, é possível. Por exemplo, para remover todos os registros com ID maior que 10, você usaria: DELETE FROM TAB_IDENTITY WHERE ID > 10;
31
É possível inserir um novo registro em uma tabela com IDENTITY especificando um valor para o campo ID?
Sim, é possível, mas não é recomendado, pois pode causar problemas no controle automático do Oracle.
32
O que acontece se você tentar inserir um registro com um valor de ID que já existe na tabela?
Ocorrerá um erro de restrição (violação de chave primária), pois o valor do ID deve ser único.
33
Se o último valor IDENTITY gerado foi 10, e você inserir um novo registro com ID = 15, qual será o próximo valor IDENTITY gerado automaticamente?
O próximo valor IDENTITY gerado automaticamente será 11.
34
Quais são os riscos de forçar valores em campos IDENTITY?
Pode bagunçar o controle automático do Oracle, causar erros de restrição e dificultar a manutenção da integridade dos dados.
35
Em que situação seria aceitável forçar um valor para o campo IDENTITY?
Em geral, não é recomendado. No entanto, pode ser aceitável em situações específicas, como durante a migração de dados de outro sistema, desde que os valores forçados não causem conflitos com os valores IDENTITY existentes e futuros.
36
O que acontece se você tentar inserir um registro em uma tabela com IDENTITY especificando o valor NULL para o campo ID?
O Oracle irá ignorar o valor NULL e gerar automaticamente um novo valor para o campo ID, de acordo com a sequência do IDENTITY.
37
Qual a relação entre a cláusula GENERATED BY DEFAULT ON NULL AS IDENTITY e a inserção de valores NULL no campo ID?
Essa cláusula garante que, quando um valor NULL é inserido no campo ID, o Oracle automaticamente gera um novo valor IDENTITY.
38
Inserir um valor NULL no campo ID é equivalente a omitir o campo no comando INSERT?
Sim, ambos os casos resultarão na geração automática de um novo valor IDENTITY pelo Oracle.
39
Se você inserir um valor NULL no campo ID, o Oracle irá verificar se já existe um registro com esse valor antes de gerar um novo IDENTITY?
Não, o Oracle simplesmente ignora o valor NULL e gera um novo valor IDENTITY, sem verificar a existência de um registro com valor NULL.
40
Em que situações você usaria o valor NULL para o campo ID em um comando INSERT?
Em geral, você não precisa se preocupar em usar NULL explicitamente. Basta omitir o campo ID no comando INSERT para que o Oracle gere o valor IDENTITY automaticamente.