2012-02-19 15 views
37

C'è un era per avere un BIGINT ID autoincrementante per una tabella. Può essere definito in questo modoID incremento automatico nel database H2

id bigint auto_increment 

ma che non ha alcun effetto (che non si incrementa automaticamente). Vorrei inserire tutti i campi tranne il campo ID: il campo ID dovrebbe essere fornito dal DBMS. Oppure devo chiamare qualcosa per incrementare il contatore ID?

risposta

99

Funziona per me. JDBC URL: 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; 

risultato:

ID NAME 
1 hello 
2 world 
+0

Grazie! Ho saputo, che il mio errore non era nel creare, ma nella dichiarazione di inserimento. Ho usato l'inserimento nei valori di test ("ciao"); – eriq

+3

Sarebbe bello se tu avessi +1 la mia risposta :-) –

+0

Era su -1 e potevo solo aumentarlo fino a 0, cosa che ho fatto. Forse mi mancano punti per alzarlo più in alto. – eriq

-7
id bigint(size) zerofill not null auto_increment, 
+2

'zerofill' non è supportato dal database H2. –

3

Molto semplice:

id int auto_increment primary key 

H2 creerà oggetto Sequenza automaticamente

2

È inoltre possibile utilizzare default:

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