Mysql的安全模式

什麼是安全模式

在mysql中,如果在update和delete沒有加上where條件,數據將會全部修改。不只是初識mysql的開發者會遇到這個問題,工作有一定經驗的工程師難免也會忘記寫入where條件。爲了避免失誤造成的數據全部修改和刪除,可開啓mysql的安全模式。

 

安全模式的開啓與關閉

set sql_safe_updates=1; //安全模式打開狀態
set sql_safe_updates=0; //安全模式關閉狀態

 

在update操作中:當where條件中列(column)沒有索引可用且無limit限制時會拒絕更新。where條件爲常量且無limit限制時會拒絕更新。

在delete操作中: 當①where條件爲常量,②或where條件爲空,③或where條件中 列(column)沒有索引可用且無limit限制時拒絕刪除。

 

總結

如果設置了sql_safe_updates=1,那麼update語句必須滿足如下條件之一才能執行成功
1)使用where子句,並且where子句中列必須爲prefix索引列
2)使用limit
3)同時使用where子句和limit(此時where子句中列可以不是索引列)

delete語句必須滿足如下條件之一才能執行成功
1)使用where子句,並且where子句中列必須爲prefix索引列
2)同時使用where子句和limit(此時where子句中列可以不是索引列)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章