Hallo,
ich bin auf ein Problem gestoßen welches ich nicht ganz verstehe.
(Alles läuft derzeit ohne Commit und ohne Journal.)
Ich habe eine Tabelle SRC.
Die laufende Nummer ist der Primärschlüssel.
ObjektNr., SourceFile und SourceLib bilden einen Unique-Key.
Sätze kann ich hinzufügen, wenn es jedoch ums Löschen geht, bekommen ich IMMER eine Fehlermeldung (auch wenn die tabelle neu erstellt und leer ist).
Entferne ich den Unique-Key funktioniert alles super.
Code:
CREATE TABLE SRC
(SRCNR INTEGER GENERATED BY DEFAULT AS IDENTITY,
OBJNR INTEGER /* Objekt Zuordnung */
NOT NULL WITH DEFAULT,
SRCF CHAR (10) /* Source-File (QRPGSRC, ...) */
NOT NULL WITH DEFAULT,
SRCLIB INTEGER /* Zuordnung der Source-Lib */
NOT NULL WITH DEFAULT,
SRCMBR CHAR (10) /* Source-File (QRPGSRC, ...) */
NOT NULL WITH DEFAULT,
SRCTYP CHAR (10) /* Source-Typ (RPGLE, CLLE, ...)*/
NOT NULL WITH DEFAULT,
SRCDAT DATE /* AEnderungs-Datum vom Source */
NOT NULL WITH DEFAULT,
CONSTRAINT SRC_PK
PRIMARY KEY (SRCNR));
Hier werden die Fremdschlüssel und der Unique-Key erstellt.
Code:
ALTER TABLE SRC
ADD CONSTRAINT SRCOBJ_FK
FOREIGN KEY (OBJNR)
REFERENCES OBJ (OBJNR)
ON DELETE CASCADE
ON UPDATE RESTRICT;
ALTER TABLE SRC
ADD CONSTRAINT SRCLIB_FK
FOREIGN KEY (SRCLIB)
REFERENCES LIB (LIBNR)
ON DELETE CASCADE
ON UPDATE RESTRICT;
ALTER TABLE SRC
ADD CONSTRAINT SRC_UNIQUE
UNIQUE (OBJNR, SRCF, SRCLIB);
Hier die Fehlermeldung:
Code:
strsql
Teildatei SRC nicht in Journal *N aufgezeichnet.
SRC in MYLIB für Operation ungültig.
Code:
Nachricht . . . : SRC in MYLIB für Operation ungültig.
Ursache . . . . : Ursachencode ist 3. Ursachencodes:
1 - SRC hat keine Teildateien.
2 - SRC wurde mit freiem Speicherplatz gesichert.
3 - SRC nicht im Journal aufgezeichnet, keine Berechtigung für Journal
oder der Journalstatus ist *STANDBY. Dateien mit
RI-Integritätsbedingungsaktion CASCADE, SET NULL od. SET DEFAULT müssen im
selben Journal aufgezeichnet werden.
Ist bei der Verwendung eines Unique-Keys ein Journal Pflicht?
Danke für jeden Denkanstoß.
lg
Bookmarks