MySQL Upgrade

SQL

safe-updates

在应用 BUG或者 DBA误操作的情况下,会发生对全表进行更新:update delete 的情况。MySQL提供 sql_safe_updates 来限制次操作。】

1
set sql_safe_updates = 1;

设置之后,会限制update delete 中不带 where 条件的SQL 执行,较严格。会对已有线上环境带来不利影响。对新系统、应用做严格审核,可以确保不会发生全表更新的问题。

由此,update 时,在没有 where 条件或者where 后不是索引字段时,必须使用 limit;在有 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 -> SQL Queries and reconnect.

因为MySql运行在safe-updates模式下,该模式会导致非主键条件下无法执行update或者delete命令,执行命令

修改下数据库模式,SET SQL_SAFE_UPDATES = 0,安全起见,执行完操作后,建议在恢复成默认状态1

1
2
SET SQL_SAFE_UPDATES = 0;
SET SQL_SAFE_UPDATES = 1;