2012-04-06 17 views
9

Qualcuno sa di una comoda funzione per cercare tra column_names in Vertica? Dalla documentazione, sembra che \ d solo query nomi_tabella. Sto cercando qualcosa come MySQL's information_schema.columns, ma non riesco a trovare alcuna informazione su una tabella simile di meta-dati.Come cercare nomi_colonna in Vertica?

Grazie!

risposta

11

In 5.1 se si dispone di autorizzazioni sufficienti si può fare

SELECT * FROM v_catalog.columns; 

per accedere informazioni di colonne, per alcune cose è necessario unirsi con

v_catalog.tables 
+0

cerca in v_catalog.view_columns se cerchi le tue risposte nelle viste anziché nelle tabelle – srj

1

La risposta può variare a seconda della versione di Vertica che si sta utilizzando.

Nella versione più recente, 5.1, è presente una tabella di sistema COLUMNS. Ma guardando la documentazione in linea qui sembra essere le colonne più utili con i relativi tipi:

TABLE_SCHEMA VARCHAR TABLE_NAME VARCHAR DATA_TYPE VARCHAR

Che dovrebbe darvi quello che vi serve. Se la tua versione non ha la tabella di sistema, fammi sapere quale versione stai utilizzando e vedrò cosa possiamo fare.

0

Wrap questo script python in un guscio funzione e potrai vedere tutte le tabelle che contengono due colonne: importazione argparse

parser = argparse.ArgumentParser(description='Find Vertica attributes in tables') 
parser.add_argument('names', metavar='N', type=str, nargs='+', help='attribute names') 
args = parser.parse_args() 


def vert_attributes(*names): 
    first_name = names[0].lower() 
    first = "select root.table_name, root.column_name from v_catalog.columns root " 
    last = " where root.column_name like '%s' " % first_name 
    names = names[1:] 
    if len(names) >= 1: 
     return first + " ".join([" inner join (select table_name from v_catalog.columns where column_name like '%s') q%s on root.table_name = q%s.table_name " % (name.lower(), index, index) for index,name in enumerate(names)]) + last 
    else: 
     return first + last 

print nz_attributes(*tuple(args.names))