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

vcudknz3  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(305)
+------------+--------+----------+-------+-----+--------+
| 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号。
我认为它不会工作(得到错误)。因为在查询编号2之前删除的数据不存在。
但我得到了好的结果。为什么会这样?

yk9xbfzb

yk9xbfzb1#

在这种情况下。为什么这个查询返回“ok”? Query OK 只是意味着查询执行时没有错误(语法错误或运行时错误)——这里就是这样:查询没有失败,只是没有找到任何要执行的记录 delete .
但是,您可以在消息的其余部分看到,查询没有影响任何行;这是一个 DELETE 语句,表示未删除任何行。

相关问题