位置: 编程技术 - 正文

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字符集的作用)

  • 企业发生的印花税计入什么科目
  • 所得税营业成本包括税金及附加吗
  • 凭证附件的粘法
  • 个人独资企业的优缺点
  • 已经勾选确认的发票可以取消认证吗
  • 税控盘维护费要交吗
  • 应收账款和应付账款对冲会计分录
  • 房地产企业土地使用税
  • 分支机构如何领购发票
  • 担保费能抵扣吗
  • 公司 捐赠
  • 去年多计提了费用今年怎么办
  • 公司注销固定资产清理需要开票吗
  • 工地上汽车加油怎么加
  • 政府机构可以开对外营业的餐饮吗
  • 无票费用如何做凭证分录
  • 无票收入负数怎么报增值税
  • 服务业结转成本怎么算
  • 公司注销了是不是就不能用了
  • 养殖专业合作社业务范围包括哪些
  • win7取消共享文件夹
  • PHP:oci_set_action()的用法_Oracle函数
  • deldir.exe是什么
  • 营改增后哪些费用可以抵扣
  • windows dvd maker是什么
  • window10解压
  • msmpeng.exe是什么进程
  • PHP:mcrypt_enc_get_block_size()的用法_Mcrypt函数
  • Vue3 + Pinia 持久化存储
  • Laravel 5.3 学习笔记之 错误&日志
  • ntpdate命令详解
  • php中使用什么函数来定义常量
  • 织梦痣铃表情太到位
  • 印花税申报的流程有哪些
  • 应收款超过多久未收回可界定为损失
  • 股权激励如何做会计分录
  • 现金科目的指定科目是什么
  • 一般纳税人和小规模纳税人的区别
  • 一次性取得租赁合同
  • mongodb mysql配合使用
  • 赠送给客户的礼品税法
  • 电子承兑过期超过10天就无法转让吗
  • 注册资本及构成
  • 培训学校预收学费可退吗
  • 润滑油开具增值税专用发票
  • 资金结余率怎么算
  • 免息分期付款怎么办理
  • 电子行程单如何下载
  • 小企业会计准则2023电子版
  • 电汇凭证是什么会计科目
  • 购入的无形资产加计扣除怎么算
  • 内账咋做
  • mysql %d
  • Win10 Mobile 10536预览版用得越久越卡顿是怎么回事?
  • onenote for windows 10怎么用
  • ubuntu16连接wifi步骤
  • 微软surface pro 3按键驱动
  • mac怎么打开访达功能
  • explore是什么进程
  • win10系统开机弹文件资源管理器窗口
  • windows8启动管理器
  • centos搭建服务器
  • linux字符串命令
  • win7桌面小工具如何设置使用
  • win10一年更新几次
  • Linux下使用httpry来嗅探HTTP流量教程
  • linux 指定动态库连接位置
  • opengl geometry shader
  • js中如何实现数字相加
  • javascript教程推荐知乎
  • Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
  • Extjs4 GridPanel 的几种样式使用介绍
  • android入门书
  • linux怎么安装rz
  • css中清除浮动的方法
  • shell脚本监听端口
  • python开发的程序
  • 开普通发票必须要纳税人识别号吗?
  • 北京供暖 2020
  • 我国现行税率分
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设