如何使用sqlachemy更新mysql表中的列?

时间:2015-06-30 01:28:46

标签: mysql python-2.7 sqlalchemy sql-update flask-sqlalchemy

以下是我尝试过的所有不同内容:

1

query = db.session.query(Table1)
query = query.filter(Table1.id == '12345')
record = query.one()
record.trackingId = 'UPSTXNID1'
db.session.flush()

2

sqlalchemy.update(Table1)\
    .values({Table1.trackingId: 'UPSTXNID1'})\
    .where(Table1.id == '12345)

3

session.query(Table1)\
        .filter(Table1.id == '12345')\
        .update({Table1.trackingId: 'UPSTXNID1'})
session.commit()

4

db.engine.execute(
   "UPDATE Table1 SET trackingId=:trackingId WHERE id=:id",
   {'id': '12345', 'trackingId': 'UPSTXNID1'}
)

所有这些都不会抛出任何错误,但trackingId列不会更新值。

1 个答案:

答案 0 :(得分:0)

在我调用执行后,第二个的一个小变化工作。

stmt = sqlalchemy.update(Table1).\
            values(trackingId = 'UPSTXNID1').\
            where(Table1.id == '12345')
db.engine.execute(stmt)

# If you want to see the underlying SQL statement that is created
print str(stmt.compile(dialect=sqlalchemy.dialects.mysql.dialect()))