我想从数据库中的指向表中查询一些信息(我不喜欢原生SQL语句),这是我的代码:
import sqlalchemy as sqa
sl_database_link = 'mssql+pymsql://……'
sl_engine = sqa.create_engine(sl_database_link)
session = scoped_session(sessionmaker(bind=sl_engine))
insp_sl = inspect(sl_engine)
tables = insp_sl.get_table_names()
session.query('the table which I want to query')
但是当我得到表名后,我不知道如何正确地通过表名查询表,有人可以告诉我吗?
我在StackOverflow上找到了一些帖子,但每个结果都不能解决我的问题。
如果您想查询单个表,您可以通过 Table 类获取对象。
import sqlalchemy as sa
...
tbl = sa.Table(name_of_table, sa.MetaData(), autoload_with=engine)
with engine.connect() as conn:
rows = conn.execute(sa.select(tbl))
如果您想要多个表,可以使用 metadata.reflect:
metadata = sa.MetaData()
# Omit "only" to reflect all tables
metadata.reflect(engine, only=[name_of_table1, name_of_table2, ...])
my_table = metadata.tables[name_of_table]