我正在尝试使用它的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。提前致谢!
答案 0 :(得分:1)
错误与我在查询的最后一行提供更新值的方式有关。我将其更改为update({Experiment.ExperimentStatus: "Approved"})
并且有效。