Auto Increment Id no H2 Database
O H2 é um banco de dados muito versátil que pode ser utilizado de várias formas, veja neste post como criar um Auto Increment
Última atualização em: | 11295 Visualizações
A primeira coisa que precisamos entender é para que serve um campo com Auto Incremento.
Em todos os casos que já precisei utilizar, o auto incremento é utilizado em campos de chave primária (Primary Key
), e sempre que for inserir um registro o próprio banco de dados cuida para que estes valores não se repitam, sempre incrementando um valor sequencial numérico.
Veja também: Como utilizar o Banco de Dados h2 com Spring Boot.
Vamos entender na prática. Primeiro criamos a tabela SEM_AUTOINCREMENTO
, veja:
CREATE TABLE SEM_AUTOINCREMENTO(
ID INT PRIMARY KEY,
NAME VARCHAR(255)
);
Note que o campo
ID
foi criado com o tipoINT
ePRIMARY KEY
, porém, não tem Auto Incremento.
Agora tentamos fazer o insert:
Insert into SEM_AUTOINCREMENTO(NAME) values ('Wolmir')
E obtemos o seguinte resultado:
NULL not allowed for column "ID"; SQL statement:
Insert into SEM_AUTOINCREMENTO(NAME) values ('Wolmir') [23502-197] 23502/23502 (Help)
Note que por não conter o Auto Incremento o campo
ID
precisa receber um valor.
Neste caso precisamos criar o insert dessa forma:
Insert into SEM_AUTOINCREMENTO(ID, NAME) values (1, 'Wolmir')
Usando AUTO_INCREMENTO no H2
Agora vamos a outro exemplo usando o Auto Incremento no campo ID
.
CREATE TABLE COM_AUTOINCREMENTO(
ID INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(255)
);
Note que o campo
ID
foi criado com o tipoINT
,PRIMARY KEY
eAUTO_INCREMENT
.
Agora tentamos fazer o mesmo insert na nova tabela:
Insert into COM_AUTOINCREMENTO(NAME) values ('Wolmir')
E como resultado obtemos:
Insert into COM_AUTOINCREMENTO(NAME) values ('Wolmir');
Update count: 1
(1 ms)
Indicando que o registro foi inserido com sucesso. Para verificar podemos realizar uma consulta na tabela.
select * from COM_AUTOINCREMENTO
E podemos ver o que registro foi incluído com ID
1.
ID | NAME |
---|---|
1 | Wolmir |
Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.