MySql中安全模式sql_safe_updates

1.什么是安全模式

在mysql中,如果在update和delete没有加上where条件,数据将会全部修改。不只是初识mysql的开发者会遇到这个问题,工作有一定经验的工程师难免也会忘记写入where条件。为了避免失误造成的数据全部修改和删除,可开启mysql的安全模式。

3.查看安全模式

  • show variables like "%safe%"
  •  sql_safe_updates就是数据库的 安全模式。默认问关闭状态。
  • 开启数据库可以对数据进行一些不当操作的保护。
  • 比如:在使用update,delete操作的时候没有where条件或者limit条件的时候,就会容易误操作整张表的数据。
  • 安全模式也是属于mysql系统变量的,所以查看的时候可以用variable 

2.设置安全模式

  • 上面查询命令实例表示当前mysql处于安全模式打开的状态。
    set sql_safe_updates=1; //安全模式打开状态
    set sql_safe_updates=0; //安全模式关闭状态

3.update、delete操作

  • update
  • (1)无where条件的update,操作失败,会提示需要使用where条件作为主键。
  • (2)无where条件但是有limit的update,操作成功,虽然没有where条件,但是加入了limit限制。
  • (3)使用非索引字段作为条件进行更新,操作失败,因为条件字段不是索引字段并且没有加入limit限制。
  • (4)使用非索引字段作为条件并且加入limit进行更新,操作成功,虽然条件字段不是索引字段,但是有加入limit限制,所以执行成功。
  • (5)使用索引字段作为条件并且不加入limit进行更新,操作成功,虽然没有加入limit限制,但是条件字段为索引字段,所以执行成功。
  • delete
  • (1)无where条件的delete,操作失败,没有where条件
  • (2)非索引键进行条件删除,操作失败
  • (3)使用索引键并且不加limit限制进行删除。操作成功
  • (4)加入limit但是不使用where条件删除。操作失败,因为没有加入where检索条件。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值