如何解决无法更新的情况

时间:2019-06-14 03:47:01

标签: python mysql sql peewee

我正在尝试使用where条件更新我的表。我不确定我要去哪里错了。

我正在使用peewee进行python中的SQL查询。我正在尝试更新具有相同列的两个不同表。该查询对于table1可以正常工作,但对于table2则不能,尽管它们都是相同的。最奇怪的是,没有错误。我还启用了查询日志记录。

if x:
   for id in x:
       table1.update(status = 0).where(table1.slab_id == id).execute()
       table2.update(status = 0).where(table2.slab_id == id).execute()

预期:针对提供的ID,将使用状态= 0更新table1和table2。 实际:表1已成功更新,而表2的所有值都在更新,而不是仅更新一个。我还记录了查询,如下所示:

('UPDATE `table1` SET `status` = %s WHERE (`table1`.`slab_id` = %s)', [0, 44])
('UPDATE `table1` SET `status` = %s WHERE (`table1`.`slab_id` = %s)', [0, 43])
('UPDATE `table2` SET `status` = %s', [0])
('UPDATE `table2` SET `status` = %s', [0])

'UPDATE `table2` SET `status` = 0 WHERE `table2`.`slab_id` = 43->有效

对于不适用条件的table2,我无法理解为什么?

1 个答案:

答案 0 :(得分:0)

这可能是版本不匹配或外键约束的情况,不允许更新或删除表。