Mysql 更新查询失败,错误为:1175
我正在尝试使用以下查询更新表Mysql 更新查询失败,错误为:1175,mysql,sql,Mysql,Sql,我正在尝试使用以下查询更新表 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 atbillfie
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。您正在使用安全更新模式,并尝试
更新不带WHERE的表,该表使用键列禁用safe
模式下,在“首选项->SQL查询”中切换选项,然后重新连接
当我给出一个更新类似于a.productQuantity=1的where
子句时,它更新了那个特定的
有人能指出我无法执行查询的原因以及如何解决问题吗?看看:
如果要在没有where键的情况下更新,则必须执行
SET SQL_SAFE_UPDATES=0;
就在你询问之前
另一种选择是重写查询以包含一个键 此错误表示您正在安全更新模式下操作,因此您有两个选项:
- 您需要提供一个where子句,其中包含一个索引,以便更新成功或成功
- 您可以通过执行
SET SQL\u SAFE\u UPDATES=0来禁用此功能代码>
希望对您有所帮助。在
MySQL 5.5
中,如果您使用的是MySQL工作台
,那么
- 转到
-->编辑
首选项
- 单击
选项卡并取消选中“SQL查询”
复选框“安全更新”
-->重新连接到服务器(查询
,然后注销
)登录
这是可行的。在我的例子中,我使用以下Mysql命令禁用检查外键:
SET FOREIGN_KEY_CHECKS=0;