使用SQLALCHEMY引擎获取表信息/元数据,如表的update_time/上次更新时间



我用from sqlalchemy import create_engine成功地将Python连接到了我的MySQL数据库。

有了这个engine,我可以获得所需的数据等。

我正在使用table_names = engine.table_names()来获取数据库中的所有表名。

我最终需要的是表信息,如条目数、更新时间等。

我可以用select来完成所有这些,但我想知道是否还有像table_names()这样方便的函数可以做到这一点?

以下是我想用更方便的东西代替的查询:

SELECT UPDATE_TIME
FROM   information_schema.tables
WHERE  TABLE_NAME = 'my_table'

您可以使用Inspector对象:

from sqlalchemy import create_engine
from sqlalchemy.engine import reflection
"""
initialize engine
"""
inspector = reflection.Inspector.from_engine(engine)
for table in inspector.get_table_names():
print(inspector.get_columns(table))

以下是反思的文档。

要提取Inspector返回的值,您需要对列进行迭代:

for column in inspector.get_columns(table):
print(column['name'])
print(column['type'])
print(column['nullable'])

最新更新