2012-02-19 30 views
37

¿Existe una necesidad de tener una identificación BIGINT autoincrementing para una tabla? Puede ser definido como talID de incremento automático en la base de datos H2

id bigint auto_increment 

pero que no tiene ningún efecto (que no se incrementa de forma automática). Me gustaría insertar todos los campos excepto el campo ID: el DBMS debe proporcionar el campo ID. ¿O necesito llamar algo para incrementar el contador de ID?

Respuesta

99

Funciona para mí. 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; 

resultado:

ID NAME 
1 hello 
2 world 
+0

¡Gracias! Aprendí que mi error no estaba en la creación, sino en la declaración de inserción. Utilicé insertar en valores de prueba ('hola'); – eriq

+3

Estaría bien si tuvieras +1 mi respuesta :-) –

+0

Estaba en -1 y solo pude subirlo a 0, lo cual hice. Tal vez me faltan puntos para subirlo más. – eriq

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

'zerofill' no es compatible con la base de datos H2. –

3

muy simple:

id int auto_increment primary key 

H2 crear el objeto de secuencia automática

2

Puede también utilizar default:

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