当我执行SQL请求时出现错误

问题描述

| 我有一个我无法执行的sql请求,出现此错误:     要禁用安全模式,请在首选项-> sql编辑器->查询编辑器中切换选项,然后重新连接。 您正在使用安全更新模式,并且试图在没有使用KEY列的WHERE的情况下更新表 我的请求:
update customfieldvalue
set stringvalue=\"****\"
where customfieldvalue.customfield IN 
(select customfield.id 
from customfield 
where customfield.cfname=\"Resoltion\" 
and customfieldvalue.issue=12345);
我如何解决此问题,因为在生产环境中我无法执行此操作? PS:我正在使用MysqL     

解决方法

        要仅针对当前会话运行禁用它:
SET SQL_SAFE_UPDATES=0;
    ,        要解决此问题: 禁用安全模式: 切换“首选项”->“ SQL编辑器”->“查询编辑器”中的选项,然后重新连接。 原因: 您正在使用安全更新模式,并且试图在没有使用KEY列的WHERE的情况下更新表 (您读过消息吗?它解释了所有内容)     ,        如果您无法关闭生产环境中的安全更新,则需要对查询进行重新处理以使ѭ2key中至少包含一个关键列。没有它,您将执行表扫描。使用键列#1,您可能会得到逻辑等效项((3ѭ),但这将满足安全更新约束。     ,        
SET SQL_SAFE_UPDATES=0;
update customfieldvalue
set stringvalue=\"****\"
where customfieldvalue.customfield IN 
(select customfield.id 
from customfield 
where customfield.cfname=\"Resoltion\" 
and customfieldvalue.issue=12345);