Erstmal danke für deine Antwort.
Hier das betreffende Skript:
Code:
CREATE TABLE CD.RUNTIME_PROPERTY
(
runtime_property_id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1) NOT NULL PRIMARY KEY,
import_definition_id INT NULL,
import_task_id INT NOT NULL,
name VARCHAR NOT NULL,
value VARCHAR NULL,
CONSTRAINT fk_rtp_id FOREIGN KEY (import_definition_id) REFERENCES CD.IMPORT_DEFINITION (import_definition_id) ON DELETE CASCADE,
CONSTRAINT fk_rtp_it FOREIGN KEY (import_task_id) REFERENCES CD.IMPORT_Task (import_task_id) ON DELETE CASCADE,
CONSTRAINT u_rtp_name UNIQUE (import_definition_id, import_task_id, name)
);
GRANT ALL ON CD.RUNTIME_PROPERTY TO cd_user;
Das Problem ist wahrscheinlich nicht die runtime_property_id (PK), sondern das u_rtp_name unique Contraint. Die Kombination aus import_definition_id, import_task_id und name soll unique sein, wobei import_definition_id null sein kann. Ist das überhaupt machbar so? Wenn die import_definition_id nämlich null ist, dann ist der Satz nicht mehr unique, auch wenn alle Felder gleich sind.