2013-09-30 8 views
8

Ich versuche, eine Tabelle in einer H2-Datenbank zu erstellen. Wie lege ich fest, dass der Primärschlüssel aus einer erstellten Sequenz generiert werden soll?Erstellen einer Tabelle in h2-Datenbank mit vordefinierten Sequenz für Primärschlüssel

Die Sequenz wird group_seq genannt, und ich schaffte es diese Anweisung:

CREATE SEQUENCE GROUP_SEQ; 

Also, wenn ich die Tabelle erstellen, wie kann ich angeben, dass ich meinen Primärschlüssel col (ID) will diese Sequenz zu verwenden, ?

Antwort

15

Wenn Sie Ihre eigene Sequenz verwenden:

create sequence group_seq; 
create table test3(id bigint default group_seq.nextval primary key); 

Und wenn nicht:

create table test1(id identity); 

oder

create table test2(id bigint auto_increment primary key); 

All dies in der H2 SQL grammar railroad diagrams dokumentiert.

+0

Wie kann ich angeben, dass die ID der Primärschlüssel ist? – user1154644

+0

Ich habe meine Antwort aktualisiert. –

+0

@ThomasMueller Wenn ich meine benutzerdefinierte Sequenz verwende, wird sie nicht automatisch von Hibernate generiert. Wenn ich das auto_increment Flag verwende, funktioniert es gut. Ich check-in Information_Schema.Sequences und festgestellt, dass die Spalte IS_GENERATED für systemgenerierte Sequenzen auf True festgelegt ist, aber für benutzerdefinierte Sequenzen falsch ist. Kann ich es für benutzerdefinierte Sequenzen auf "True" setzen? – Arham