set sql_safe_updates=1;--开启保护
show variables like 'sql_safe_updates';--查看开启是否正常
当sql_safe_updates设置为1时,UPDATE :要有where,并查询条件必须使用为索引字段,或者使用limit,或者两个条件同时存在,才能正常执行。DELETE:where条件中带有索引字段可删除,where中查询条件不是索引,得必须有limit。主要是防止UPDATE和DELETE 没有使用索引导致变更及删除大量数据。系统参数默认值为0
为了防止线上业务出现以下3种情况影响线上服务的正常使用和不小心全表数据删除:
1:没有加where条件的全表更新操作
2:加了where 条件字段,但是where 字段 没有走索引的表更新
3:全表delete 没有加where 条件 或者where 条件没有 走索引