MySql中安全模式sql_safe_updates

本文介绍了MySQL中的安全模式,包括如何开启和关闭安全模式,以及安全模式下update和delete操作的行为变化。通过设置sql_safe_updates变量来防止误操作,确保数据安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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检索条件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值