如何在SQLAlchemy 0.9中为具有已知列名的语句添加where子句?

时间:2014-10-04 19:05:29

标签: python sql reflection sqlalchemy

有一组表格,所有表格都有一个确定名称的列,例如“ColA'”。我正在尝试编写一个函数,该函数将特定的where子句附加到该列的SqlAlchemy语句(InsertSelectUpdate)。 / p>

期望的结果:

我希望结果像这样工作(我需要的功能是somehow_get_table):

def attach_where(statement, val):
    return statement.where(somehow_get_table(statement).c.ColA == val)

statement = select([table1.c.col1, table1.c.col2])

print statement
>>> SELECT col1, col2 FROM table1

print attach_where(statement, 1)
>>> SELECT col1, col2 FROM table1 WHERE ColA = 1

我想到的可能的解决方案:

  1. 从语句中获取Column个对象的列表,并选择该列所属的一个(或所有)表,并将其用于where
  2. 仅使用列名称(如文本中所示)。我不知道该怎么做,在某些情况下可能会破坏(比如连接)。
  3. 我认为1号更好但我可能错了,我觉得应该有更好的做法。这样做的好方法是什么?

0 个答案:

没有答案