SQLAlchemy更新操作提供MySQL错误1292

时间:2015-09-16 06:35:11

标签: mysql flask sqlalchemy flask-sqlalchemy

我正在尝试使用它的ORM更新SQLAlchemy表中的记录。这是我写的查询:

localsession.query(Experiment).\
                 filter(Experiment.UserExperimentNumber==ExperimentId).\
                 filter(Experiment.UserId==UserId).\
                 update({Experiment.ExperimentStatus: Experiment.ExperimentStatus - "Approved"})

这给我一个操作错误,MySQL的错误代码为1292.以下是错误消息:

OperationalError: (OperationalError) (1292, "Truncated incorrect DOUBLE value: 'ForReview'") 'UPDATE `Experiment` SET `ExperimentStatus`=(`Experiment`.`ExperimentStatus` - %s) WHERE `Experiment`.`UserExperimentNumber` = %s AND `Experiment`.`UserId` = %s' ('Approved', '102', '1')

我尝试查找提到的MySQL错误,似乎错误是由MySQL查询的AND中的WHERE语句引起的。

我该如何纠正?这个错误背后还有​​其他原因吗?我知道我也可以在没有ORM层的情况下编写查询,但我想避免这种情况,因为我在整个应用程序中使用了ORM。提前致谢!

1 个答案:

答案 0 :(得分:1)

错误与我在查询的最后一行提供更新值的方式有关。我将其更改为update({Experiment.ExperimentStatus: "Approved"})并且有效。