问题
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;