mysql - 更新记录时如何在 mysql 中避免此错误?

标签 mysql

<分区>

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

我的查询是

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

错误是

21:17:21 update department_dup set dept_name = null where dept_no = 'd010' Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 0.000 sec

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

最佳答案

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

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

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

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

关于mysql - 更新记录时如何在 mysql 中避免此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54970986/

相关文章:

mysql - 删除名称中带逗号的索引

php - Laravel 4.2 多对多关系,使用其他默认 ID

mysql - 防止 Rails 父关系中的竞争条件

MYSQL 选择指定后的第一行

php - 如何正确格式化 SQL 日期时间

mysql - 如何在mysql 5.7中的json数组类型上创建索引

php - PDO/mySQL 如何绑定(bind)多个值来存储多行

php - 使 WordPress 文件生效后,所有显示损坏的图像,甚至图像都存在于该路径中

mysql - 将所有数据库表引擎更改为 InnoDB

php - 从连接到 MySQL 的 php 调用 python 脚本