我想在SQLAlchemy ORM中使用给定的列名(字符串)来设置值和选择值。
我有一个函数,该函数应该从给定的id
(str)中读取一行(主键tableName
),并从中提取当前值(oldVal
)。给定列columnName
(str),用updateVal
更新行,如果成功,则以oldVal
的元组返回(True, oldVal)
,如果不成功,则返回(False, None)
存在。 engine
和session
是代码中其他地方预先定义的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)
非常感谢。