位置: 编程技术 - 正文

mysql利用参数sql_safe_updates限制update/delete范围详解(mysql参数表)

编辑:rootadmin

推荐整理分享mysql利用参数sql_safe_updates限制update/delete范围详解(mysql参数表),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql设置参数查询sql语句,mysql参数化查询,mysql参数表,mysql常用参数设置,mysql设置参数查询sql语句,mysql设置参数查询sql语句,mysql设置参数查询sql语句,mysql设置参数查询sql语句,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

大家应该都知道,我们在mysql运维中出现过不少因为update/delete条件错误导致数据被误更新或者删除的case,为避免类似问题的发生,可以用sql_safe_updates参数来对update/delete做限制。这个参数设置为on后,可防止因程序bug或者DBA手工误操作导致的整个表被更新或者删除的情况。下面话不多说了,来一起看看详细的介绍吧。

设置这个参数时需要注意一下几点:

a、设置前需要确认程序中所有的update和delete都符合sql_safe_updates的限制规范,不然程序会报错。

b、5.0,5.1都是session级别的,5.6是global&session级别;低版本的数据库只能在程序创建session时设置带上set sql_safe_updates=on;高版本的数据库可以直接set global set sql_safe_updates=on,设置完成后让程序重连后生效。

限制规范:

示例表结构:

1、update

a、报错条件:不带where、带where无索引、where条件为常量

不带where:update delay_monitor set Ftime=now();

带where无索引:update delay_monitor set Ftime=now() where Fgtid='test';

where条件为常量:update delay_monitor set Ftime=now() where 1;

b、执行条件:带where带索引、不带where+带limit、带where无索引+limit、带where有索引+limit、where条件为常量+limit

带where带索引:update delay_monitor set Ftime=now() where id=2;

不带where+带limit: update delay_monitor set Ftime=now() limit 1;

mysql利用参数sql_safe_updates限制update/delete范围详解(mysql参数表)

带where无索引+limit:update delay_monitor set Ftime=now() where Fgtid='test' limit 1;

带where有索引+limit:update delay_monitor set Ftime=now() where id =2 limit1;

where条件为常量+limit:update delay_monitor set Ftime=now() where 1 limit 1;

2、delete

相对于update,delelte的限制会更为严格;where条件为常量或者为空,将不予执行。

a、报错条件:不带where、带where无索引、不带where+带limit、where条件为常量、where条件为常量+limit

不带where:delete delay_monitor set Ftime=now();

带where无索引:delete delay_monitor set Ftime=now() where Fgtid='test';

不带where+带limit: delete delay_monitor set Ftime=now() limit 1;

where条件为常量:delete delay_monitor set Ftime=now() where 1;

where条件为常量+limit:delete delay_monitor set Ftime=now() where 1 limit 1;

b、执行条件:带where带索引、带where无索引+limit、带where有索引+limt

带where带索引:delete delay_monitor set Ftime=now() where id=2;

带where无索引+limit:delete delay_monitor set Ftime=now() where Fgtid='test' limit 1;

带where有索引+limit:delete delay_monitor set Ftime=now() where id =2 limit1;

总结如下表:key表示所有、const表示常量

操作 no where where key where nokey limit where nokey+limit where key+limit where const where const+limit delete NO YES NO NO YES YES NO NO update NO YES NO YES YES YES NO YES

总结

标签: mysql参数表

本文链接地址:https://www.jiuchutong.com/biancheng/348371.html 转载请保留说明!

上一篇:解析MySQL中存储时间日期类型的选择问题(mysql存储数据的原理)

下一篇:简析mysql字符集导致恢复数据库报错问题(mysql字符集的作用)

  • 浙江增值税专用发票几个点
  • 印花税的征税对象是条例列举的凭证未列举的不征税
  • 销项税额的计算方法
  • 其他个人出租房屋按照多少征收应纳税额
  • 存在弃置费用的固定资产的财务费用
  • 行政职工福利费包括哪些内容呢
  • 去年的财务报表可以更正申报吗
  • 自己打印raz
  • 企业购买土地如何做账
  • 广告服务收入要计入什么科目
  • 纳税申报 财务报表利润表
  • 产品没货怎么给客户解释
  • 商业企业收取各项费用的税务与会计处理
  • 影院分成为什么那么高
  • 酒店业小规模纳税人可以享受2023年应纳税额抵减政策吗
  • 销售肉制品税率
  • 所得税的费用限额怎么算
  • 餐饮行业采购流程图
  • 同一个单位,应收应付都有,怎么调账
  • 出口企业免抵增值税
  • 失控发票账务处理
  • 税款已缴纳可以作废申报吗
  • wind10激活密钥
  • 为什么要清理肠道垃圾
  • 货物损坏补发会计分录
  • 地方水利建设基金
  • 外购货物用于职工福利进项税额可以抵扣吗
  • 进程aissca.exe
  • 简易征收增值税一般纳税人怎么报税
  • 融资租入固定资产的账务处理
  • 鹤顶兰的养殖方法和管理
  • php变量函数
  • ssm算前后端分离吗
  • 网络电话综合布线
  • 炫酷登录注册教程
  • 微信小程序最新咸鱼之王兑换
  • 包装物应交消费税
  • openai发布时间
  • 入库税款异常是啥意思
  • 公司发放给员工的出差补助需要合并计算个税吗
  • 利息收入的纳税调整
  • 财务费用税前扣除标准是多少
  • 现代服务增值税纳税义务发生时间
  • 小规模销售收入超过500万
  • 不缴纳增值税的收入需要缴纳水利税吗
  • 搜索站内内容
  • 代扣税费分录
  • mysql union和join
  • 关联企业无息借款如何征税?
  • SQL SERVER使用的是( )逻辑模型
  • 经审计的财务报表是否要会计师事务所盖章
  • 仓库物资盘盈盘亏怎么办
  • mysql insert语句操作实例讲解
  • 小规模纳税人报税
  • 做模具怎么找客户
  • 违约投标保证金多少
  • 其他应付款转营业外收入摘要怎么写
  • 用mysql的小技巧
  • win7下mysql6.x出现中文乱码的完美解决方法
  • Linux系统下Qt的基本安装和配置
  • ctfmon.exe成功怎么解决
  • fpt.exe
  • linux命令行在哪
  • win7系统管理员密码
  • opencv轻松入门
  • Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社
  • android开发最全教程
  • python清除运行结果
  • 表单元素的基本语法
  • Node.js中的事件循环是什么意思
  • scrollcontroller
  • jquery常用操作
  • 类似愤怒小鸟的小游戏
  • js过滤特殊字符
  • 河南新农合缴费记录可以在哪里查?
  • 企业登录初始密码
  • 河南地方税务局税收征管档案管理办法(试行)
  • 任何基金都可以转让吗
  • 江苏国税局官网
  • 工商税务登记流程视频
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设