62 votes

ID d'incrémentation automatique dans la base de données H2

Existe-t-il un moyen d'avoir un ID BIGINT auto_incrementing pour une table. Il peut être défini ainsi

 id bigint auto_increment

mais cela n'a aucun effet (il ne s'incrémente pas automatiquement). Je voudrais insérer tous les champs sauf le champ ID - le champ ID doit être fourni par le SGBD. Ou dois-je appeler quelque chose pour incrémenter le compteur d'ID ?

147voto

Thomas Mueller Points 18666

Ça marche pour moi. URL JDBC : jdbc:h2:~/temp/test2

 drop table test;
create table test(id bigint auto_increment, name varchar(255));
insert into test(name) values('hello');
insert into test(name) values('world');
select * from test; 

résultat:

 ID  NAME  
1   hello
2   world

7voto

beloblotskiy Points 66

Très simple:

 id int auto_increment primary key

H2 créera automatiquement l'objet Séquence

5voto

ericj Points 181

Vous pouvez également utiliser default :

 create table if not exists my(id int auto_increment primary key,s text);
insert into my values(default,'foo');

-7voto

eveo Points 950
id bigint(size) zerofill not null auto_increment,

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X