Mysql workbench,update 语句明明写了where,但是报错信息却是without a where。
问题
mysql查询语句:UPDATE student SET age = 29, city='shanghai' WHERE id = 3;
上面的查询语句已经包含了where条件,但是返回的错误信息如下:
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 ->SOL Editor and reconnect. 0.000 sec
问题原因
即使已经在UPDATE查询中使用了 WHERE子句指定条件,但是 MySQL依然报错表示正在使用安全更新模式并且没有使用包含键列的 WHERE 子句。这可能是因为表中没有定义主键或唯一索引,导致 MySQL无法识别用于限定更新范围的唯一标识列。
解决方案
-
增加语句:设置主键
ALTER TABLE student MODIFY id INT PRIMARY KEY;
-
关闭安全更新模式(不建议)
`SET SQL_SAFE_UPDATES = 0;`
原文链接:https://ceshiren.com/t/topic/31880