-
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.
-
Hallo Fuerchau,
danke für den Tipp ! Mit der QADBKFLD kann ich entlich was anfangen !
Andere Lösung war auch:
DSPFD FILE(Mylib/MyFile) TYPE(*ATR) OUTPUT(*OUTFILE) FILEATR(*PF) OUTFILE(QTEMP/DSPFDXX)
und die Felder stehen dann im Feld PHTXT aber im Format :
KEY:xxxxx/xxxxx/xxxx u.s.w.
-
DSPFD ist ja die "klassische" Methode.
Die QADBKFLD ist für Public gesperrt, du kannst also nicht mit einem normalen User darauf zugreifen.
Die View SYSSTATS hingegen kann ständig verwendet werden.
Similar Threads
-
By Markus Ralf in forum NEWSboard Windows
Antworten: 0
Letzter Beitrag: 19-04-02, 12:43
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks