为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL错误代码:在MySQLWorkbench中更新期间的1175

MySQL错误代码:在MySQLWorkbench中更新期间的1175

倚天杖 2019-07-11 13:11:01
MySQL错误代码:在MySQLWorkbench中更新期间的1175我正在更新列visited为了给它值1,我使用MySQL工作台,并在工作台内部的SQL编辑器中编写语句。我正在编写以下命令:UPDATE tablename SET columnname=1;它给出了以下错误:您正在使用安全更新模式,并且尝试更新一个表,但没有使用键列禁用安全模式的位置,切换选项.我按照指示,不检查safe update选项从Edit然后菜单Preferences然后SQL Editor..同样的错误仍然出现&我无法更新这个值。拜托,告诉我怎么了?
查看完整描述

3 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

看起来,MySQL会话的安全更新选项准备好了。这意味着,如果不指定键(例如),就不能更新或删除记录。primary key)在WHERE子句中。

试着:

SET SQL_SAFE_UPDATES = 0;

或者您可以修改查询以遵循规则(使用primary key在……里面where clause).


查看完整回答
反对 回复 2019-07-11
?
大话西游666

TA贡献1817条经验 获得超14个赞

在执行UPDATE命令之前,请遵循以下步骤:在MySQL工作台中

  1. Edit --> Preferences

  2. 点击

    "SQL Editor"

    标签和

    uncheck

    “安全更新”

    check box

  3. Query --> Reconnect to Server

    /注销,然后登录
  4. 现在执行SQL查询。

不需要重新启动MySQL守护进程!


查看完整回答
反对 回复 2019-07-11
?
皈依舞

TA贡献1851条经验 获得超3个赞

不需要将SQL_SAFE_UPDATE设置为0,我真的不鼓励它那样做。在默认情况下,安全更新是有原因的。如果你知道我的意思,你可以驾驶一辆没有安全带和其他东西的汽车;)只需在WHERE子句中添加一个键值,与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.

现在您可以放心,每条记录都(总是)按照您的预期进行更新。


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 1089 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信