在安全模式下執行 MySQL 刪除操作?


要以安全模式刪除,可使用以下查詢 −

SET SQL_SAFE_UPDATES = 0;

為了理解以上查詢,讓我們建立一個表。以下是建立表的查詢 −

mysql> create table SafeDeleteDemo
   −> (
   −> Price int
   −> );
Query OK, 0 rows affected (0.50 sec)

利用插入命令在表中插入一些記錄。查詢如下 −

mysql> insert into SafeDeleteDemo values(100);
Query OK, 1 row affected (0.11 sec)

mysql> insert into SafeDeleteDemo values(200);
Query OK, 1 row affected (0.19 sec)

mysql> insert into SafeDeleteDemo values(300);
Query OK, 1 row affected (0.09 sec)

mysql> insert into SafeDeleteDemo values(500);
Query OK, 1 row affected (0.14 sec)

mysql> insert into SafeDeleteDemo values(1000);
Query OK, 1 row affected (0.10 sec)

mysql> insert into SafeDeleteDemo values(150);
Query OK, 1 row affected (0.11 sec)

在刪除記錄之前,顯示錶中的所有記錄。查詢如下 −

mysql> select *from SafeDeleteDemo;

以下是輸出 −

+-------+
| Price |
+-------+
|   100 |
|   200 |
|   300 |
|   500 |
|  1000 |
|   150 |
+-------+
6 rows in set (0.00 sec)

現在藉助 SET 命令,在安全模式下執行刪除操作。查詢如下 −

mysql> SET SQL_SAFE_UPDATES = 0;
Query OK, 0 rows affected (0.00 sec)

現在開始刪除表中的一些記錄。我們仍處於安全模式下 −

mysql> delete from SafeDeleteDemo where Price >=500;
Query OK, 2 rows affected (0.14 sec)

現在,可檢查在刪除記錄之後表中存在多少條記錄。查詢如下 −

mysql> select *from SafeDeleteDemo;

以下是顯示我們已成功刪除 >= 500 條記錄的輸出 −

+-------+
| Price |
+-------+
|   100 |
|   200 |
|   300 |
|   150 |
+-------+
4 rows in set (0.00 sec)

現在藉助相同的 SET 命令,可以移除安全模式下的刪除操作。查詢如下 −

mysql> SET SQL_SAFE_UPDATES = 1;
Query OK, 0 rows affected (0.00 sec)

更新於:2019 年 7 月 30 日

874 次瀏覽

開啟您的 職業

透過完成課程獲得認證

入門
廣告
© . All rights reserved.