Folgendes Problem: Ich habe in einer SQL-Tabelle eine Spalte definiert als GENERATED BY DEFAULT um auch Werte für diese Spalte vorgeben zu können:

Code:
ID INTEGER GENERATED BY DEFAULT AS IDENTITY ( 
 START WITH 1 INCREMENT BY 1 
 NO MINVALUE NO MAXVALUE 
 NO CYCLE NO ORDER 
 NO CACHE )
Wenn kein Wert vorgegeben wird, soll der DB-Manager automatisch einen Wert generieren.

In der Beschreibung zu GENERATED BY DEFAULT steht folgendes:
For an identity column or row change timestamp column, the database manager inserts a specified value but does not verify that it is a unique value for the column unless the identity column or row change timestamp column has a unique constraint or a unique index that solely specifies the identity column or row change timestamp column.
Bei ensprechenden Constraint bin ich nun davon ausgegeben, das wenn eine bereits verwendete ID vom DB-Manager ermittelt wird, dieser automatische die nächst freie Id nimmt.
Ein entsprechende Constraint ist in der Tabelle definiert:
Code:
CONSTRAINT constname PRIMARY KEY( ID )
Die Anwendung bricht mir aber mit SQL0803 (Doppelter Schlüssel) weg, wenn keine ID im Insert angegeben ist und die vom DB-Manager ermittelte Id mit einer bereits manuell vorgegebenen Id übereinstimmt.

Was mache ich falsch?

Danke im Voraus!