亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL中參數sql_safe_updates在生產環境的使用詳解

2024-07-24 13:15:04
字體:
來源:轉載
供稿:網友

前言

在應用 BUG或者 DBA誤操作的情況下,會發生對全表進行更新:update delete 的情況。MySQL提供 sql_safe_updates 來限制次操作。

set sql_safe_updates = 1;

設置之后,會限制update delete 中不帶 where 條件的SQL 執行,較嚴格。會對已有線上環境帶來不利影響。對新系統、應用做嚴格審核,可以確保不會發生全表更新的問題。

CREATE TABLE working.test01 (id INT NOT NULL AUTO_INCREMENT,NAME VARCHAR(20),age INT,gmt_created DATETIME,PRIMARY KEY(id)); insert into test01(name,age,gmt_created) values('xiaowang',2,now()); insert into test01(name,age,gmt_created) values('huahua',5,now());  insert into test01(name,age,gmt_created) values('gougou',9,now());  insert into test01(name,age,gmt_created) values('heihei',12,now());  insert into test01(name,age,gmt_created) values('baibai',134,now()); # 過濾字段上沒有索引updateupdate test01 set name = 'xiaoxiao' where age = 2 ;ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column# 全表更新update test01 set name = 'xiaoxiao';ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column# 加入limit的更新update test01 set name = 'xia' limit 1;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0# 新增索引create index idx_age on test01(age);update test01 set name = 'xiaoxiao' where age = 2;Query OK, 1 row affected (0.01 sec)Rows matched: 1 Changed: 1 Warnings: 0update test01 set name = 'hhh' where age = 9 limit 10;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0alter table test01 drop index idx_age;create index idx_age_name on test01(age,name);update test01 set age= 100 where name = 'hhh';ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY columnupdate test01 set age= 100 where name = 'hhh' limit 10;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0

由此,update 時,在沒有 where 條件或者where 后不是索引字段時,必須使用 limit ;在有 where 條件時,為索引字段

最近在工作中又發現了一個問題,mysql sql_safe_updates 不支持子查詢的更新。

考慮到開發人員有時候不小心誤更新數據,要求線上庫的 MySQL 實例都設置 sql_safe_updates=1 來避免沒有索引的 update、delete。

結果有一天開發發現下面的一個SQL 沒法正確執行:

update t1 set col2=1 where key1 in (select col2 from t2 where key2='ABcD');

錯誤如下:

ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column

也就是說沒法對沒有走到索引的where條件進行更新。搜索了下發現,的確不行。及時 key1 和key2 分別是 t1、t2 的索引[我換成主鍵都不行] 。說明是不支持子查詢的update。

google 了一下發現人家也問過這個問題。。

http://stackoverflow.com/questions/24314830/query-not-getting-executed-if-supplied-a-nested-sub-query

最后解決方法:

1)修改 session 級別的參數: set sql_safe_updates=0; 執行 update 操作。退出終端。

2)程序處理:先 select col2 from t2 where key2='ABcD' 獲取數據,然后循環處理結果,并用 update t1 set col2=1 where key1=? 來批量更新過。建議還是用程序處理,臨時修改變量不是長久之計。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。  


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产午夜精品一区理论片飘花| 久热精品在线视频| 国产va免费精品高清在线| 久久久久久久久久久久久久久久久久av| 欧美亚州一区二区三区| 欧美裸体xxxx极品少妇| 精品偷拍各种wc美女嘘嘘| 欧美日韩一区二区免费在线观看| 琪琪第一精品导航| 久久国产精品久久久久久久久久| 正在播放欧美一区| 国产成人精品在线观看| 日韩免费av在线| 91精品久久久久久久| 欧美精品videos性欧美| 欧美体内谢she精2性欧美| 欧美成人免费一级人片100| 亚洲高清一二三区| 欧美日韩免费看| 久久99精品久久久久久琪琪| 欧洲亚洲在线视频| 国产在线观看91精品一区| 亚洲r级在线观看| 日韩美女在线观看一区| 久久久久国色av免费观看性色| 亚洲人精选亚洲人成在线| 欧美富婆性猛交| 欧美成人免费va影院高清| 久久精品国产v日韩v亚洲| 97在线免费观看| 久久久91精品| 欧美精品做受xxx性少妇| 国产精品久久久久久久久久免费| 欧美电影《睫毛膏》| 亚洲天堂精品在线| 欧美日韩成人在线观看| 亚洲第一免费播放区| 精品视频久久久| 九九热在线精品视频| 免费成人高清视频| 91麻豆桃色免费看| 久久精品成人一区二区三区| 国产精品扒开腿做爽爽爽的视频| 亚洲最大成人免费视频| 欧美一区二区三区免费观看| 欧美性猛交丰臀xxxxx网站| 亚洲精品美女视频| 国产午夜精品免费一区二区三区| 精品久久久久久| 日韩欧美中文字幕在线播放| 久久久久久久久久久久av| 久久精品国产一区| 国内免费精品永久在线视频| 色狠狠av一区二区三区香蕉蜜桃| 日韩av免费在线观看| 成人免费网站在线观看| 伦伦影院午夜日韩欧美限制| 国产999精品久久久影片官网| 国内精品久久久| 日韩欧美在线视频| 中文字幕亚洲综合久久| 在线视频一区二区| 美女黄色丝袜一区| 精品中文视频在线| 欧美激情一区二区三区高清视频| 美女精品久久久| 国产精品永久免费| 国产视频在线观看一区二区| 欧美床上激情在线观看| 成人在线小视频| 青草青草久热精品视频在线观看| 国产性色av一区二区| 久久中文字幕在线| 欧美大片欧美激情性色a∨久久| 国产精品入口尤物| 日韩精品中文字幕视频在线| 亚洲深夜福利网站| 欧美日韩国产综合视频在线观看中文| 美女少妇精品视频| 国产精品欧美日韩久久| 波霸ol色综合久久| 国产+人+亚洲| 欧美日韩国产中文字幕| 68精品久久久久久欧美| 国产一区欧美二区三区| 国产精品久久久久久久久久| 国产精品久久久久久av福利| 97视频免费观看| 亚洲女性裸体视频| 国内外成人免费激情在线视频网站| 国产精品久久久久久久久久免费| 九九热精品视频| 国产精品三级美女白浆呻吟| 国产成人精品一区二区| 国产精品久久一| 成人免费网站在线看| 欧美做受高潮1| 日韩欧美极品在线观看| 国产成人福利视频| 91精品中国老女人| 欧美裸体男粗大视频在线观看| 欧美日韩亚洲天堂| 久久久亚洲精品视频| 欧美精品videos| 亚洲一区二区免费| 日韩精品免费在线观看| 热久久99这里有精品| 亚洲国产高清高潮精品美女| 日韩电影免费观看在线观看| 91美女高潮出水| 欧美黄色成人网| 免费97视频在线精品国自产拍| 日韩美女在线播放| 色综合久久悠悠| 国产亚洲精品久久久久久牛牛| 国产亚洲欧美日韩一区二区| 国产在线日韩在线| 国产精品都在这里| 久久人人爽国产| 国产精品日日摸夜夜添夜夜av| 国语自产精品视频在线看抢先版图片| 中文字幕视频在线免费欧美日韩综合在线看| 97超碰蝌蚪网人人做人人爽| 欧美一区在线直播| 欧美激情亚洲自拍| 激情懂色av一区av二区av| 日韩在线中文字幕| 欧美精品一区在线播放| 欧美激情日韩图片| 亚洲毛片一区二区| 成人黄色影片在线| 亚洲成人999| 亚洲欧美另类国产| www.欧美精品| 国产精品三级美女白浆呻吟| 欧美激情在线有限公司| 国产免费一区二区三区香蕉精| 中文字幕av一区二区三区谷原希美| 欧美刺激性大交免费视频| 国产成人一区三区| 狠狠躁夜夜躁久久躁别揉| 91在线视频一区| 国产欧美婷婷中文| 91精品久久久久久| 亚洲综合色av| 国产精品va在线播放我和闺蜜| 欧美亚洲午夜视频在线观看| 国产日韩欧美另类| 久久视频在线看| 亚洲欧美国内爽妇网| 麻豆一区二区在线观看| 高清一区二区三区日本久| 欧美自拍视频在线| 日本高清视频精品| 国产一区二区三区中文| 精品毛片三在线观看| 国产精品成人va在线观看| 欧美在线视频a| 国产精品视频久久久久| 欧美午夜精品在线| 亚洲护士老师的毛茸茸最新章节| 亚洲国产精品女人久久久| 97视频在线观看免费高清完整版在线观看| 中文字幕v亚洲ⅴv天堂|