在安全模式下执行 MySQL 删除?
mysqlmysqli database
要在安全模式下删除,您可以使用以下查询 −
SET SQL_SAFE_UPDATES = 0;
为了理解上述查询,让我们创建一个表。以下是创建表的查询 −
mysql> create table SafeDeleteDemo −> ( −> Price int −> ); Query OK, 0 rows affected (0.50 sec)
使用insert命令在表中插入一些记录,查询如下 −
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)