Таблицы каталога IBM i DB2 / поиск уникальных ключей из физических файлов - PullRequest
1 голос
/ 08 апреля 2020

Я уже могу получить необходимую информацию через IBM i Command DSPFD. Внизу файла спула я вижу уникальную информацию для моего PF и все необходимые ключевые поля (см. Ниже, к сожалению, наш язык IBMi - немецкий).

Теперь я могу найти эту информацию через каталог таблицы в DB2? Что мне нужно сделать запрос: а) помечена ли таблица как УНИКАЛЬНАЯ? б) если а истинно, покажите мне эти УНИКАЛЬНЫЕ ключевые поля.

Например, я могу отобразить столбцы моей желаемой таблицы, которая уже великолепна: syscolumns2 - Пример- SQL:

 SELECT c.* from qsys2.SYSCOLUMNS2 c
    WHERE TRIM(UPPER(table_name)) = UPPER('GENPF510');  

source: https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/db2/rbafzcatalogtbls.htm

Обратите внимание, я не могу получить необходимую информацию через таблицу SYSKEYS, я уже проверил это - эта таблица предназначена для информации об индексах, которые не применяются на моей старой PF, в этом случае (может быть добавлено для более быстрого доступа к запросу).

                                             Spool-Datei anzeigen                                                        
Datei . . . . . :   QPDSPFD                                                                              Seite/Zeile 2/5           
Steuerung . . . .                                                                                        Spalten     1 - 130       
Suchen  . . . . .                                                                                                                  
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+....0....+....1....+....2....+....3 
   Wartung des Zugriffspfads . . . . . . . . . : MAINT      *IMMED                                                                 
   Eindeutige Schlüsselwerte erforderlich  . . : UNIQUE     Ja                                                                     
   Zugriffspfad aufgezeichnet  . . . . . . . . :            Nein                                                                   
   Zugriffspfad  . . . . . . . . . . . . . . . :            Geschlüsselt                                                           
   Integritätsart  . . . . . . . . . . . . . . :            NONE                                                                   
   Anzahl der Schlüsselfelder  . . . . . . . . :              1                                                                    
   Satzformat  . . . . . . . . . . . . . . . . :            GENPR510                                                               
     Schlüsselfeld . . . . . . . . . . . . . . :            ADRE10                                                                 
       Reihenfolge . . . . . . . . . . . . . . :            Aufsteigend                                                            
       Vorzeichen angegeben  . . . . . . . . . :            UNSIGNED                                                               
       Zone/Ziffer angegeben . . . . . . . . . :            *NONE                                                                  
       Alternative Sortierfolge  . . . . . . . :            Nein                                                                   
   Sortierfolge  . . . . . . . . . . . . . . . : SRTSEQ     *HEX                                                                   
   Sprachen-ID . . . . . . . . . . . . . . . . : LANGID     DEU                                                                    
 Teildateibeschreibung                                                                                                             
   Teildatei . . . . . . . . . . . . . . . . . : MBR        GENPF510                                                               
     Teildateiebenen-ID  . . . . . . . . . . . :            1010412225901                                                          
     Erstellungsdatum der Teildatei  . . . . . :            12.04.01                                                               
     Text 'Beschreibung' . . . . . . . . . . . : TEXT       Adresse                                       /WH                      
                                                                                                                        Weitere ...
F3=Verlassen  F12=Abbrechen   F19=Links   F20=Rechts   F24=Weitere Tasten                                                          

1 Ответ

1 голос
/ 15 апреля 2020

Информация, которую вы ищете, может быть найдена в QSYS.QADBXREF.

Этот запрос SQL дает вам список всех представлений и логических файлов с их ключами. DBXUNQ = "U" обозначает уникальные ключи.

Select DBXFIL , f.DBKFLD, DBKPOS , t.DBXUNQ 
from QSYS.QADBXREF t 
  INNER JOIN QSYS.QADBKFLD  f on DBXFIL = DBKFIL and DBXLIB = DBKLIB 
  INNER JOIN QSYS.QADBFDEP d on d.DBFFDP = t.DBXFIL and d.DBFLIB=t.DBXLIB 
  where d.DBFFIL =  'GENPF510' and d.DBFLIB = 'YOURLIBRARY' 
order by DBXFIL, DBKPOS

Мои времена, когда я работал с BRAIN AS / Infor AS, давно прошли. Поэтому, пожалуйста, извините заполнитель 'YOURLIBRARY'.

...