是否有一个表的auto_incrementing BIGINT ID。 它可以这样定义
id bigint auto_increment
但是没有效果(它不会自动增加)。 我想插入除ID字段之外的所有字段 - ID字段应由DBMS提供。 或者我需要调用一些东西来增加ID计数器吗?
答案 0 :(得分:117)
它对我有用。 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;
结果:
ID NAME
1 hello
2 world
答案 1 :(得分:7)
IDENTITY
现代方法使用IDENTITY
类型,用于自动生成递增的64位长整数。
H2中使用的这种单字语法是SQL标准中定义的GENERATED … AS IDENTITY
的缩写形式。其他数据库正在实现此功能,such as Postgres。
CREATE TABLE event_ (
pkey_ IDENTITY NOT NULL PRIMARY KEY , -- ⬅ `identity` = auto-incrementing long integer.
name_ VARCHAR NOT NULL ,
start_ TIMESTAMP NOT NULL ,
stop_ TIMESTAMP NOT NULL
) ;
答案 2 :(得分:5)
很简单:
id int auto_increment primary key
H2将自动创建Sequence对象
答案 3 :(得分:3)
您还可以使用default
:
create table if not exists my(id int auto_increment primary key,s text);
insert into my values(default,'foo');
答案 4 :(得分:-7)
id bigint(size) zerofill not null auto_increment,