View Full Version : Primary Key in SYSCOLUMNS ?
Hallo *ALL,
ich brauche die Key Felder aus einer Datei zu ermitteln.
Laut IBM gibt es in der SYSCOLUMNS ein Feld Namens KEYSEQ :
SELECT NAME, KEYSEQ FROM SYSIBM.SYSCOLUMNS
WHERE TBNAME = 'TABLE_NAME' AND KEYSEQ > 0
ORDER BY KEYSEQ
Auf unserer Maschine ist die Datei
SYSCOLUMNS aber in der QSYS2
und da gibt es das Feld
KEYSEQ nicht.
Wo stehen die Keys sonst dann ?
Wer hat 'ne Idee dazu, wie kann man das per SQL sonst lösen ?
Gruß
A.W.
select * from syskeys
where index_name = 'AAA' and index_schema = 'MYLIB'
Hallo Fuerhau,
wäre richtig, aber in der Datei habe ich nur die Index Dateien, nicht die physischen.
Wenn tatsächlich als Constraint "Primary Key" definiert, dann sollte es in der SYSCST oder SYSKEYCST stehen.
Schau einfach mal in der QSYS2-Lib in die diversen SYSxxx-Views oder ins SQL-Handbuch.
Tja, ich habe schon (fast) alle SYSxxx tables durchsucht - nirgendwo habe ich einen passenden Hinweis gefunden.
Mal abwarten, vielleicht meldet sich noch Jemand zu dem Thema.
Wie war's mit SYSCST oder SYSCSTCOL ggf. auch beide mit einander verknüpft?
Falls die Views in der Datenbiliothek nicht vohranden sein sollten, greif auf die in der QSYS2 zu.
Birgitta
Hallo Birgitta,
ich weiss nicht genau was die zwei Dateien beinhalten, aber im Feld TABLE_NAME gibt es keine Dateinamen aus unserer Datenbank...
In diesen Views sind alle Tabellen, für die Primary, Uniqupe und Foreign Key Constraints definiert sind enthalten.
Sind vielleicht auf Deinen Tabellen keine Constraints?
Hast Du schon mal geprüft, ob "Deine" Tabellen-Namen unter System_Table_Namen zu finden sind?
Birgitta
Nun ja, die SYSxxx-Tabellen beschränken sich im Wesentlichen auf SQL-Objekte.
Klassische PF's und LF's musst du eher per klassischen Methoden bearbeiten.
Die Tabelle heißt QADBKFLD in der QSYS.
Beim Betrachten der PF mittels DSPDBR fällt allerdings auf, dass in der SYSIBM die Tabelle SYSSTATS vorhanden ist.
Und siehe da, das ist genau die Tabelle die du brauchst. Diese wird übrigens auch von ODBC für die Schemaabfrage SQLStatistics benötigt wird. Warum diese nun in die SYSIBM gewandert ist weiß ich allerdings auch nicht.