更新记录时如何避免mysql中的这个错误? [复制]

Posted

技术标签:

【中文标题】更新记录时如何避免mysql中的这个错误? [复制]【英文标题】:how to avoid this error in mysql while updating a record? [duplicate] 【发布时间】:2019-07-25 01:00:36 【问题描述】:

我有一个表 dapartment_dup,我想在执行查询时更新一条记录,但它给了我一个错误

我的查询是

update department_dup 
set dept_name = null
where dept_no = 'd010';

错误是

21:17:21 更新 department_dup 设置 dept_name = null 其中 dept_no = 'd010' 错误代码:1175。您正在使用安全更新模式并且您尝试过 更新没有使用 KEY 列的 WHERE 的表。禁用 安全模式,切换 Preferences -> SQL Editor 中的选项,然后 重新连接。 0.000 秒

在错误消息中,它给了我路径,但我不知道在哪里重新连接?

【问题讨论】:

我认为错误信息很清楚。你不明白什么? @Gordon Linoff 我无法理解。抱歉,我是 SQL 初学者?如果问题很愚蠢 【参考方案1】:

在您的 IDE(可能是 mysql Workbench)中,您启用了 safe mode .. 这意味着您只能在 where 条件下使用作为该行主键的列来执行更新或删除 .. 在您的情况下,dept_no 是不是主键..

所以如果你想在你的问题中使用更新代码,你可以在你的 mysql Workbench 中禁用安全模式

或添加涉及主键列的条件 假设您的主键列是名称 your_key_col 添加 AND your_key_col

update department_dup 
set dept_name = null
where dept_no = 'd010'
AND   your_key_col<>0;

【讨论】:

以上是关于更新记录时如何避免mysql中的这个错误? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

我有一种形式可以更新mysql中的某些值,当输入为空时,如何避免更新单元格?

如何在修改其副本时避免更新原始数组? [复制]

如何在同一个 mysql 记录中插入和更新一个数字? [复制]

如何避免informix中的锁异常

更新 MYSQL 记录错误

如何解决 MySQL 错误“您不能在 FROM 子句中指定目标表 X 进行更新”? [复制]