当前位置: 首页 > 知识库问答 >
问题:

如何在UPDATE期间解决错误代码1175 mySQL?

薄瑞
2023-03-14

我试图更新一个列,但在更新过程中总是有相同的错误,如果我不想禁用“安全更新模式”,我该如何解决这个问题?这是我的查询

UPDATE test
SET unit_price= (SELECT unit_price*1.15
                   FROM (SELECT unit_price  from test )as l           
                  )where qtyinstock>0

错误代码:1175。您使用的是安全更新模式,并且您试图更新一个没有使用键列禁用安全模式的表,请在“首选项”中切换该选项-

共有1个答案

太叔俊侠
2023-03-14

我已经和这个问题斗争了几个星期了。在我的例子中,更新代码有时会工作,但在其他代码中会出现错误1175,即使我在查询where子句中特别调用了主表索引。它看起来很随机,非常令人沮丧和困惑。
关于禁用安全更新模式有很多评论,但在我的情况下,这是一个不可接受的选择。嗯,数据完整性太重要了,不能禁用此功能,我们都是人,都会犯错误。因此,经过大量研究,我意识到MySQL查询优化器正在选择使用哪个索引,当它决定使用主索引以外的索引时,它将抛出此错误消息。一些阅读链接在底部。

对于我的实现,解决方案是简单地向Update语句添加优化器提示:

Update salesFact FORCE INDEX(PRIMARY)
...

我的情况就是这么简单!在我的例子中,我不得不使用Force索引而不是使用Index。绩效似乎也没有受到负面影响。我希望这对其他人有帮助,因为它夺走了我几周的生命!;)

安全更新模式:https://dev.mysql.com/doc/refman/5.7/en/mysql-tips.html优化提示:https://dev.mysql.com/doc/refman/5.7/en/index-hints.html

 类似资料:
  • 我有一个有 7 列的 csv 文件 问题是我试图设置日期时间索引,但它不起作用可能是因为日期和时间是两个单独的列。 代码如下: 错误如下: C:\用户\sydgo\Anaconda3\_locE:/教程/pandas_libsTraceback(最近调用最后一次):文件“C:\用户\sydgo\Anaconda3\lib\站点包\熊猫\核心\索引\_loc”,第2442行,get_loc返回自我。

  • 问题内容: 我正在尝试更新该列以为其赋予值1。我使用MySQL工作台,并从工作台内部在SQL编辑器中编写语句。我正在编写以下命令: 它给了我以下错误: 您正在使用安全更新模式,并且试图更新不具有使用KEY列的WHERE的表。要禁用安全模式,请切换选项…。 我跟着指示,我不加以制止,从选项菜单,然后再。仍然会出现相同的错误,并且我无法更新此值。拜托,告诉我哪里错了? 问题答案: 我找到了答案。问题是

  • 我试图学习反应,所以我有这个示例代码的全堆栈反应投票应用程序,我试图让它工作,但运行npm安装后,接着npm启动我收到以下错误,当我运行有人能帮我解决这个问题吗: 这是我的package.json: 最后是我的日志文件:

  • 我写电子邮件类: 但我只得到了这个错误,我不理解这个错误。这意味着什么以及如何解决 错误:错误:在TCPConnectW连接ECONNREFUSED3.209.246.195:2525rap.after连接[作为完成](net.js:1146: 16){errno:-4078,代码:“ESOCKET”,系统调用:“连接”,地址:“3.209.246.195”,端口:2525,命令:“CONN”}

  • 问题内容: 我正在尝试使用python plone-devstart.py工具创建一个新的plone环境。我遇到了引导错误。所以我从项目目录中使用了命令bin / python bootstrap.py -d。它(bin / python bootstrap.py -d命令)之前工作正常,但是现在我收到了类似的错误 问题答案: 您已经在站点软件包中安装了fork ,但是您正在尝试安装2.2.0,它

  • CORS错误似乎是web领域中众所周知的问题。但我第一次尝试了FlitterWeb,我遇到了严重的错误。 下面的代码在iOS设备上运行时在应用程序版本中运行良好,但当我在Chrome上通过beta频道的web调试测试相同的代码时,它遇到了CORS错误。 其他stackoverflow的回答解释了如何用他们项目的服务器端文件解决CORS问题。但是我完全不知道什么是服务器的东西,以及如何处理他们的答案