如果表不存在,为什么删除表(如果存在)会导致 MySQL 警告?



为什么删除不存在的表IF EXISTS会引起警告?

CREATE DATABASE `test`;
USE `test`;
DROP TABLE IF EXISTS `nonexistent_table`;
SHOW WARNINGS;

未知表test.nonexistent_table

这个语句的全部意义不就是首先检查它是否存在,然后接受它可能不存在吗?

不同的是如果它不给你一个错误而只是警告:

DROP TABLE IF EXISTS `nonexistent_table`;
SHOW WARNINGS;
<>以前✓关卡|代码|消息:---- | ---: | :----------------------------------------------注释| 1051 |未知表'db_2134513036.nonexistent_table'
DROP TABLE `nonexistent_table`;
SHOW WARNINGS;
未知表'db_2134513036.nonexistent_table'

db<此处小提琴>

如您所见,第一个语句运行成功,但第二个语句失败。

最新更新