2014-10-04 111 views
3

我需要從查詢中獲取字段屬性,例如在此問題中:How to get column attributes query from table name using PostgreSQL? 但對於查詢,是否有這種方法?如何從使用PostgreSQL的查詢中獲取列屬性?

+0

您正在使用哪種編程語言? PL/pgSQL的? Java的? C++? – 2014-10-04 21:51:53

+0

我正在使用Python。 – Starglider 2014-10-04 22:49:34

+0

@Starglider ...和'psycopg2'數據庫驅動程序? – 2014-10-05 05:50:03

回答

5

假設你正在使用psycopg2爲您的數據庫驅動程序,那麼cursor.description場是你想要什麼:

import pprint 
import psycopg2 
conn = psycopg2.connect(''); 
curs = conn.cursor() 
curs.execute("SELECT 1 as col1, 2 as col2, 'text' as colblah"); 
pprint.pprint(curs.description) 

生產:

(Column(name='col1', type_code=23, display_size=None, internal_size=4, precision=None, scale=None, null_ok=None), 
Column(name='col2', type_code=23, display_size=None, internal_size=4, precision=None, scale=None, null_ok=None), 
Column(name='colblah', type_code=705, display_size=None, internal_size=-2, precision=None, scale=None, null_ok=None)) 

的類型代碼是PostgreSQL的內部對象ID。

欲瞭解更多詳細信息see the psycopg2 manual,它解釋瞭如何將類型oids變成類型名稱等。