テーブルにauto_incrementing BIGINT IDを設定する方法はありますか。次のように定義できます
id bigint auto_increment
ただし、効果はありません(自動的に増加しません)。 IDフィールド以外のすべてのフィールドを挿入したい-IDフィールドはDBMSによって提供される必要があります。または、IDカウンターをインクリメントするために何かを呼び出す必要がありますか?
わたしにはできる。 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
IDENTITY
最新のアプローチでは、 IDENTITY
タイプを使用して、増分する64ビット長整数を自動的に生成します。
H2で使用されるこの単一ワードの構文は、 SQL:20 標準で定義されているGENERATED … AS IDENTITY
の短縮形です。 PDF document SQL:2003が公開されました の概要を参照してください。他のデータベースは実装していますこれ、 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
) ;
非常にシンプル:
id int auto_increment primary key
H2はSequenceオブジェクトを自動的に作成します
default
を使用することもできます:
create table if not exists my(id int auto_increment primary key,s text);
insert into my values(default,'foo');