我试图更新访问的列,使其值为1。我使用MySQL工作台,我从工作台内部在SQL编辑器中编写语句。我正在写下面的命令:
UPDATE tablename SET columnname=1;
它给了我以下错误:
您正在使用安全更新模式,并且试图在没有 若要禁用安全模式,请切换该选项 ....
我按照说明,我从编辑菜单中取消了安全更新选项,然后是首选项,然后是SQL编辑器。同样的错误仍然出现&我无法更新此值。求你了,告诉我怎么了?
我试图更新访问的列,使其值为1。我使用MySQL工作台,我从工作台内部在SQL编辑器中编写语句。我正在写下面的命令:
UPDATE tablename SET columnname=1;
它给了我以下错误:
您正在使用安全更新模式,并且试图在没有 若要禁用安全模式,请切换该选项 ....
我按照说明,我从编辑菜单中取消了安全更新选项,然后是首选项,然后是SQL编辑器。同样的错误仍然出现&我无法更新此值。求你了,告诉我怎么了?
当前回答
的确,对于大多数例子来说,这是毫无意义的。但最后,我得到了以下声明,它很有效:
update tablename set column1 = '' where tablename .id = (select id from tablename2 where tablename2.column2 = 'xyz');
其他回答
在MySQL Workbech版本6.2中,不退出PreferenceSQLQueriesoptions。
In this case it's possible use:SET SQL_SAFE_UPDATES=0;
如果处于安全模式,则需要在where子句中提供id。所以像这样的东西应该可以工作!
UPDATE tablename SET columnname=1 where id>0
MySql工作台给了我同样的错误,在我取消安全模式后,我重新连接服务器和更新功能工作。 在菜单栏单击“查询”,重新连接服务器
查询菜单->重新连接服务器
SET SQL_SAFE_UPDATES=0;
UPDATE tablename SET columnname=1;
SET SQL_SAFE_UPDATES=1;
我找到了答案。问题是我必须在表名之前加上模式名。也就是说,命令应该是:
UPDATE schemaname.tablename SET columnname=1;
谢谢所有。