Verknüpfen Sie eine Sequenz mit einer Identität in hsqldb

8

In PostgreSql kann man eine Sequenz definieren und sie als Primärschlüssel einer Tabelle verwenden. In HsqlDB kann immer noch eine Identitätsspalte mit automatischer Inkrementierung erstellt werden, die nicht mit einer benutzerdefinierten Sequenz verknüpft ist. Ist es möglich, eine benutzerdefinierte Sequenz als Generator einer Auto-Inkrement-Identitätsspalte in HsqlDB zu verwenden?

Beispiel sql in PostgreSql:

%Vor%

Was ist das Äquivalent in HsqlDB?

Danke.

    
Candy Chiu 01.06.2010, 23:25
quelle

1 Antwort

13

In Version 2.0 gibt es dafür keine direkte Funktion. Sie können dazu in der Tabelle einen BEFORE INSERT-Trigger definieren:

%Vor%

und Einfügen ohne Verwendung von Vlue für ID

INSERT INTO WERTE null, 'test'

Update für HSQLDB 2.1 und höher: Eine Funktion wurde hinzugefügt, um dies zu unterstützen.

%Vor%

Siehe das Handbuch unter CREATE TABLE Ссылка

Darüber hinaus verfügt 2.1 und höher über einen PostgreSQL-Kompatibilitätsmodus, in dem die PostgreSQL-Anweisung CREATE TABLE akzeptiert wird, die auf die Sequenz in der DEFAULT-Klausel verweist und sie in die HSQLDB-Syntax übersetzt.

    
fredt 10.06.2010, 20:01
quelle

Tags und Links