SQLAlchemy使用变量来定义表和列

时间:2018-12-05 06:52:45

标签: python sqlalchemy

我想在SQLAlchemy ORM中使用给定的列名(字符串)来设置值和选择值。

我有一个函数,该函数应该从给定的id(str)中读取一行(主键tableName),并从中提取当前值(oldVal)。给定列columnName(str),用updateVal更新行,如果成功,则以oldVal的元组返回(True, oldVal),如果不成功,则返回(False, None)存在。 enginesession是代码中其他地方预先定义的SQLAlchemy类型。

我想使用SQLAlchemy ORM来做到这一点。我该如何实现?

我意识到 row[columnName] 不起作用。它仅在代码中用于说明目的。

def updateDbReturnOld(
    session,
    engine,
    tableName,
    columnName,
    id,
    updateValue
    ):
    metadata = MetaData(engine)
    metadata.reflect()
    Base = automap_base()
    Base.prepare(engine,reflect = True)
    if engine.dialect.has_table(engine, tablename):
        table = Base.classes[tableName]
        row = session.query(table).get(id)
        oldVal = row[columnName]
        row[columnName] = updateValue
        session.commit()
        return (True, oldVal)
    else:
        return (False, None)

非常感谢。

0 个答案:

没有答案