【问题标题】:How to get column attributes from a query using PostgreSQL?如何使用 PostgreSQL 从查询中获取列属性?
【发布时间】:2014-11-29 14:36:41
【问题描述】:

我需要从查询中获取字段属性,例如这个问题:How to get column attributes query from table name using PostgreSQL? 但是对于查询,有没有办法做到这一点?

【问题讨论】:

  • 您使用哪种编程语言? PL/pgSQL?爪哇? C++?
  • @Starglider ... 和psycopg2 数据库驱动程序?
  • 是 psycopg2 数据库驱动程序。

标签: python sql postgresql psycopg2


【解决方案1】:

假设您使用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,其中解释了如何将类型 oid 转换为类型名称等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 2022-07-01
    • 1970-01-01
    相关资源
    最近更新 更多