提问者:小点点

为什么这个查询返回“OK”? 关于“删除”


+------------+--------+----------+-------+-----+--------+
| customerid | id     | password | level | age | name   |
+------------+--------+----------+-------+-----+--------+
|          1 | L1234  | 12345A   | J1    |  24 |        |
|          2 | L12134 | 12345a   | J1    |  23 | SYPARK |
+------------+--------+----------+-------+-----+--------+
2 rows in set (0.00 sec)

mysql> DELETE FROM customer WHERE age='23';

1.查询确定,影响1行(0.00秒)

mysql> DELETE FROM customer WHERE age='23';

2.查询确定,0行受影响(0.00秒)

在这种情况下。 为什么这个查询返回“OK”? 这是第二个。

我以为它不会工作(得到错误)。 因为在查询号为2之前删除的数据不存在。

但我得到了OK的结果。 为什么会这样?


共1个答案

匿名用户

在这种情况下。 为什么这个查询返回“OK”?

query OK只是表示查询执行时没有错误(语法错误或运行时错误)--这里就是这种情况:查询没有失败,只是没有找到任何要删除的记录。

但是,您可以在消息的其余部分中看到,查询没有影响任何行; 这是一个delete语句,意味着没有删除任何行。