我想提出最小的查询/ loc集合,在尽可能多的数据库版本中提取table metadata
中的database
。我正在使用PostgreSQl
。我正在尝试使用python
。但我不知道如何做到这一点,因为我是一个蟒蛇新手。
感谢您就此问题提出的意见/建议。
答案 0 :(得分:2)
您可以询问数据库驱动程序(在本例中为psycopg2
),以返回有关您已建立的数据库连接的一些元数据。您也可以直接向数据库询问其中的某些功能或模式,但这在很大程度上取决于您要连接的数据库的版本以及数据库的类型。
以下是PostgreSQL
>>> import psycopg2 as db
>>> conn = db.connect('dbname=billings user=steve password=xxxxx port=5432')
>>> curs = conn.cursor()
>>> curs.execute("""select table_name from information_schema.tables WHERE table_schema='public' AND table_type='BASETABLE'""")
>>> curs.fetchall()
[('contacts',), ('invoicing',), ('lines',), ('task',), ('products',),('project',)]
的一个示例:
ORM
但是,使用像SQLAlchemy
这样的engine
可能会更好。这将创建一个SQLAlchemy
,您可以查询您所连接的数据库,并规范化连接到不同数据库类型的方式。
如果您需要{{1}}的帮助,请在此处发布其他问题!通过搜索网站已经有大量的信息。