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:
Wenn kein Wert vorgegeben wird, soll der DB-Manager automatisch einen Wert generieren.Code:ID INTEGER GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE NO CYCLE NO ORDER NO CACHE )
In der Beschreibung zu GENERATED BY DEFAULT steht folgendes:
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.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.
Ein entsprechende Constraint ist in der Tabelle definiert:
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.Code:CONSTRAINT constname PRIMARY KEY( ID )
Was mache ich falsch?
Danke im Voraus!
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten

Bookmarks