[TOC]
### 一、目的
mysql安全模式sql\_safe\_updates是為了防止我們在操作表時的誤操作,把全表刪除了或者更新了。
### 二、查詢開啟狀態
```sql
mysql> show variables like 'sql_safe_updates';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| sql_safe_updates | OFF |
+------------------+-------+
```
結果為OFF表示,沒有開啟,如果為ON表示開啟了
### 三、如何開啟或關閉安全模式
#### 1\. 針對當前會話
這種方式只針對當前會話連接有效,不影響其他會話連接
1. 開啟安全模式
```
set sql_safe_updates = 1;
```
1. 關閉安全模式
```
set sql_safe_updates = 0;
```
### 四、開啟安全模式后的限制有哪些
#### 1. update語句必須滿足如下條件之一才能執行成功
1) 使用where子句,并且where子句中列必須為prefix索引列 ?
2) 使用limit ?
3) 同時使用where子句和limit(此時where子句中列可以不是索引列)
#### 2. delete語句必須滿足如下條件之一才能執行成功
1) 使用where子句,并且where子句中列必須為prefix索引列 ?
2) 同時使用where子句和limit(此時where子句中列可以不是索引列)