我试图更新访问的列,使其值为1。我使用MySQL工作台,我从工作台内部在SQL编辑器中编写语句。我正在写下面的命令:
UPDATE tablename SET columnname=1;
它给了我以下错误:
您正在使用安全更新模式,并且试图在没有 若要禁用安全模式,请切换该选项 ....
我按照说明,我从编辑菜单中取消了安全更新选项,然后是首选项,然后是SQL编辑器。同样的错误仍然出现&我无法更新此值。求你了,告诉我怎么了?
我试图更新访问的列,使其值为1。我使用MySQL工作台,我从工作台内部在SQL编辑器中编写语句。我正在写下面的命令:
UPDATE tablename SET columnname=1;
它给了我以下错误:
您正在使用安全更新模式,并且试图在没有 若要禁用安全模式,请切换该选项 ....
我按照说明,我从编辑菜单中取消了安全更新选项,然后是首选项,然后是SQL编辑器。同样的错误仍然出现&我无法更新此值。求你了,告诉我怎么了?
当前回答
如果处于安全模式,则需要在where子句中提供id。所以像这样的东西应该可以工作!
UPDATE tablename SET columnname=1 where id>0
其他回答
执行UPDATE命令前,请按照以下步骤进行操作: 在MySQL Workbench中
点击编辑——>首选项 单击“SQL编辑器”页签,取消选中“安全更新”复选框 查询——>重新连接服务器//注销,然后登录 现在执行SQL查询
另外,不需要重新启动MySQL守护进程!
如果处于安全模式,则需要在where子句中提供id。所以像这样的东西应该可以工作!
UPDATE tablename SET columnname=1 where id>0
我也有同样的问题,但当我关闭“安全更新”在编辑-> 首选项-> SQL编辑器->安全更新,我仍然使用面对 错误码为“1175禁用安全模式”
我对这个错误的解决方案只是给出了表的主键,如果没有给出,并使用这些主键值更新列。
例如:UPDATE[表名]SET Empty_Column = 'Value' WHERE [主键列名]= value;
在MySQL Workbech版本6.2中,不退出PreferenceSQLQueriesoptions。
In this case it's possible use:SET SQL_SAFE_UPDATES=0;
既然这个问题已经得到了回答,而且与安全更新没有任何关系,那么这里可能是错误的地方;我将发布补充信息。
我试图成为一个好公民,并修改了查询,使用临时表的id将得到更新:
create temporary table ids ( id int )
select id from prime_table where condition = true;
update prime_table set field1 = '' where id in (select id from ids);
失败。更新如下:
update prime_table set field1 = '' where id <> 0 and id in (select id from ids);
这工作。好吧,天哪——如果我总是添加where key <> 0来绕过安全更新检查,甚至设置SQL_SAFE_UPDATE=0,那么我已经在我的查询中丢失了“检查”。我还不如永远关闭这个选项。我想它会让删除和更新变成两个步骤,而不是一个步骤。但如果你打得足够快,不再认为钥匙是特殊的,而只是一个讨厌的东西。