如果提供嵌套的子查询,则查询未执行

时间:2014-06-19 19:29:55

标签: mysql sql mysql-workbench

对于下面的Query,它给出以下错误

Error Code: 1175. You are using safe update mode and you tried to update a table 
without a WHERE that uses a KEY column 
To disable safe mode, toggle the option in Preferences -> SQL Editor -> Query Editor 
and reconnect.

任何人都能纠正我的错误。

UPDATE delivery p  SET p.OrderID =
(
   SELECT OrderID from OrderTable o where o.DiagramID=p.DiagramID AND o.DeliveryDate=
   (
        Select min(o2.DeliveryDate) from OrderTable o2 where o2.DiagramId=o.DiagramID
   )
)
where p.OrderID=0;

1 个答案:

答案 0 :(得分:0)

问题是,您正在使用MySQL安全模式,这不允许您在不使用where子句中的KEY的情况下运行任何更新。要禁用它,请使用

SET SQL_SAFE_UPDATES=0;

在运行查询之前