欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql如何能有效防止刪庫跑路

 更新時間:2021年09月29日 16:36:04   作者:叁滴水  
本文主要介紹了mysql如何能有效防止刪庫跑路,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

大家肯定聽說過,有些開發(fā)者由于個人失誤,在delete或者update語句的時候沒有添加where語句,導致整個表數(shù)據(jù)錯亂。

mysql安全模式:mysql發(fā)現(xiàn)delete、update語句沒有添加where或者limit條件時會報錯。整個sql將無法執(zhí)行,有效防止了誤刪表的情況。

安全模式設置

在mysql中通過如下命令查看狀態(tài):

 show variables like 'sql_safe_updates';

在這里插入圖片描述

默認是OFF狀態(tài),將狀態(tài)設置為ON即可:

  • set sql_safe_updates=1; //打開
  • set sql_safe_updates=0; //關(guān)閉

設置為ON之后

  • update語句:where條件中列(column)沒有索引可用且無limit限制時會拒絕更新。where條件為常量且無limit限制時會拒絕更新。
  • delete語句: ①where條件為常量,②或where條件為空,③或where條件中 列(column)沒有索引可用且無limit限制時拒絕刪除。

測試

打開安全模式進行測試

1.無where的update和delete

delete from t_user

delete from t_user
> 1175 - You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
> 時間: 0.001s

update t_user set name='123'

update t_user set name='123'
> 1175 - You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
> 時間: 0.001s

2、非索引鍵的delete

delete from t_user where name='123'

delete from  t_user where name='123'
> 1175 - You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
> 時間: 0.007s

如果delete的where條件不是索引鍵,則必須要添加limit才可以。

delete from t_user where name='123' limit 1

delete from  t_user where name='123' limit 1
> Affected rows: 0
> 時間: 0.002s

3.索引鍵的delete

delete from t_user where group_id='123'

delete from  t_user where group_id='123'
> Affected rows: 0
> 時間: 0s

總結(jié)

如果設置了sql_safe_updates=1,那么update語句必須滿足如下條件之一才能執(zhí)行成功

  • 使用where子句,并且where子句中列必須為prefix索引列
  • 使用limit
  • 同時使用where子句和limit(此時where子句中列可以不是索引列)

delete語句必須滿足如下條件之一才能執(zhí)行成功

  • 使用where子句,并且where子句中列必須為prefix索引列
  • 同時使用where子句和limit(此時where子句中列可以不是索引列)一才能執(zhí)行成功。

到此這篇關(guān)于mysql如何能有效防止刪庫跑路的文章就介紹到這了,更多相關(guān)mysql 防止刪庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql出現(xiàn)問題:error?while?loading?shared?libraries:?libaio解決方案

    Mysql出現(xiàn)問題:error?while?loading?shared?libraries:?libaio解

    這篇文章主要介紹了Mysql出現(xiàn)問題:error?while?loading?shared?libraries:?libaio解決方案的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • MySQL調(diào)優(yōu)之索引在什么情況下會失效詳解

    MySQL調(diào)優(yōu)之索引在什么情況下會失效詳解

    索引的失效,會大大降低sql的執(zhí)行效率,日常中又有哪些常見的情況會導致索引失效?下面這篇文章主要給大家介紹了關(guān)于MySQL調(diào)優(yōu)之索引在什么情況下會失效的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • mysql創(chuàng)建表設置表主鍵id從1開始自增的解決方案

    mysql創(chuàng)建表設置表主鍵id從1開始自增的解決方案

    在MySQL中用很多類型的自增ID,每個自增ID都設置了初始值,一般情況下初始值都是從0開始,然后按照一定的步長增加(一般是自增 1),下面這篇文章主要給大家介紹了關(guān)于mysql創(chuàng)建表設置表主鍵id從1開始自增的解決方案,需要的朋友可以參考下
    2023-04-04
  • Mysql表的操作方法詳細介紹

    Mysql表的操作方法詳細介紹

    這篇文章主要為大家詳細介紹了MySQL數(shù)據(jù)庫中表常用的一些操作方法,文中的示例代碼講解詳細, 對我們學習MySQL有一定幫助,需要的可以參考一下
    2022-09-09
  • Mysql優(yōu)化策略(推薦)

    Mysql優(yōu)化策略(推薦)

    這篇文章主要介紹了Mysql優(yōu)化策略,文中介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • MySQL中隱式轉(zhuǎn)換的踩坑記錄以及解決方法分享

    MySQL中隱式轉(zhuǎn)換的踩坑記錄以及解決方法分享

    這篇文章主要和大家分享一個MySQL隱式轉(zhuǎn)換時踩過的坑,差點把服務器整崩潰了,以及最后的解決辦法。文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-11-11
  • MySQL 中定義和使用變量的方法

    MySQL 中定義和使用變量的方法

    MySQL 提供了多種類型的變量,以適應不同的應用場景,用戶定義的變量適用于簡單的會話內(nèi)數(shù)據(jù)傳遞,局部變量適合在復雜的存儲過程中使用,而會話變量則用于調(diào)整和優(yōu)化數(shù)據(jù)庫會話的行為,這篇文章主要介紹了MySQL 中定義和使用變量,需要的朋友可以參考下
    2024-04-04
  • mysql主從服務器同步心得體會

    mysql主從服務器同步心得體會

    原來看過MYSQL同步數(shù)據(jù)的實現(xiàn),可是自己還沒有動過手,今天沒什么事就玩一玩,正好在旁邊有另一臺空電腦,都在同一個路由器下。哈哈,正好。
    2008-06-06
  • Mysql中常用的幾種join連接方式總結(jié)

    Mysql中常用的幾種join連接方式總結(jié)

    join語句是面試中經(jīng)常會讓你現(xiàn)場寫出來的語句,下面這篇文章主要給大家介紹了關(guān)于Mysql中常用的幾種join連接方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • mysql修改數(shù)據(jù)庫默認路徑無法啟動問題的解決

    mysql修改數(shù)據(jù)庫默認路徑無法啟動問題的解決

    這篇文章主要給大家介紹了關(guān)于mysql修改數(shù)據(jù)庫默認路徑無法啟動問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11

最新評論