更新查询失败,错误:1175

我正在尝试使用以下查询更新表

update at_product A join

(

SELECT atbillfields.billeditemguid,count(*) AS numberOfPeopleBought

,sum(atbillfields.billeditemqty) AS soldquantity

FROM jtbillingtest.at_salesbill atsalesbill

JOIN jtbillingtest.at_billfields atbillfields

ON atsalesbill.billbatchguid=atbillfields.billbatchguid

WHERE atsalesbill.billcreationdate BETWEEN '2013-09-09' AND date_add('2013-09-09', INTERVAL 1 DAY)

GROUP BY atbillfields.billeditemguid) B ON B.billeditemguid = A.productguid

SET A.productQuantity = A.productQuantity - B.soldquantity

但是,出现以下异常:

错误代码:1175。您正在使用安全更新模式,并且尝试在不使用使用KEY列的WHERE的情况下更新表。要禁用安全模式,请在“首选项”->“

SQL查询”中切换选项,然后重新连接。

当我给where子句提供类似的更新时A.productQuantity = 1,它更新了该特定内容。

有人可以指出为什么我无法执行查询以及如何解决该问题吗?

回答:

看一下:

http://justalittlebrain.wordpress.com/2010/09/15/you-are-using-safe-update-

mode-and-you-tried-to-update-a-table-without-a-where-that-

使用一个键列/

如果要更新而没有where键,则必须执行

SET SQL_SAFE_UPDATES=0;

在您查询之前。

另一个选择是重写查询或包含一个键。

以上是 更新查询失败,错误:1175 的全部内容, 来源链接: utcz.com/qa/418727.html

回到顶部