我正在尝试使用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,我无法理解为什么?
答案 0 :(得分:0)
这可能是版本不匹配或外键约束的情况,不允许更新或删除表。