我试图更新访问的列,使其值为1。我使用MySQL工作台,我从工作台内部在SQL编辑器中编写语句。我正在写下面的命令:
UPDATE tablename SET columnname=1;
它给了我以下错误:
您正在使用安全更新模式,并且试图在没有 若要禁用安全模式,请切换该选项 ....
我按照说明,我从编辑菜单中取消了安全更新选项,然后是首选项,然后是SQL编辑器。同样的错误仍然出现&我无法更新此值。求你了,告诉我怎么了?
我试图更新访问的列,使其值为1。我使用MySQL工作台,我从工作台内部在SQL编辑器中编写语句。我正在写下面的命令:
UPDATE tablename SET columnname=1;
它给了我以下错误:
您正在使用安全更新模式,并且试图在没有 若要禁用安全模式,请切换该选项 ....
我按照说明,我从编辑菜单中取消了安全更新选项,然后是首选项,然后是SQL编辑器。同样的错误仍然出现&我无法更新此值。求你了,告诉我怎么了?
当前回答
在MySQL Workbech版本6.2中,不退出PreferenceSQLQueriesoptions。
In this case it's possible use:SET SQL_SAFE_UPDATES=0;
其他回答
MySql工作台给了我同样的错误,在我取消安全模式后,我重新连接服务器和更新功能工作。 在菜单栏单击“查询”,重新连接服务器
查询菜单->重新连接服务器
如果处于安全模式,则需要在where子句中提供id。所以像这样的东西应该可以工作!
UPDATE tablename SET columnname=1 where id>0
不需要将SQL_SAFE_UPDATES设置为0,我真的不鼓励这样做。SAFE_UPDATES默认开启是有原因的。你可以不用安全带和其他东西开车,如果你知道我的意思;) 只需在WHERE子句中添加一个KEY-value,该KEY-value匹配所有内容,例如与0相比的主键,因此不必写:
UPDATE customers SET countryCode = 'USA'
WHERE country = 'USA'; -- which gives the error, you just write:
UPDATE customers SET countryCode = 'USA'
WHERE (country = 'USA' AND customerNumber <> 0); -- Because customerNumber is a primary key you got no error 1175 any more.
现在你可以放心,每一个记录(总是)更新如你所期望的。
错误码:1175。您正在使用安全更新模式,并且您试图更新一个没有使用KEY列的WHERE的表。要禁用安全模式,请切换首选项-> SQL编辑器中的选项并重新连接。
暂时关闭“安全更新模式”
SET SQL_SAFE_UPDATES = 0;
UPDATE options SET title= 'kiemvieclam24h' WHERE url = 'http://kiemvieclam24h.net';
SET SQL_SAFE_UPDATES = 1;
永远关闭“安全更新模式”
Mysql工作台8.0:
MySQL Workbench => [ Edit ] => [ Preferences ] -> [ SQL Editor ] -> Uncheck "Safe Updates"
旧版本可以:
MySQL Workbench => [Edit] => [Preferences] => [SQL Queries]
您可以通过以下命令启用和禁用安全更新选项。
禁用,
SET SQL_SAFE_UPDATES=0;
or
SET SQL_SAFE_UPDATES=OFF;
要启用,
SET SQL_SAFE_UPDATES=1;
or
SET SQL_SAFE_UPDATES=ON;