mysql - 如果表不存在,为什么 DROP TABLE IF EXISTS 会导致 MySQL 警告?

标签 mysql sql

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

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

Unknown table 'test.nonexistent_table'

这句话的重点不就是先检查它是否存在,然后接受它可能不存在吗?

最佳答案

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

DROP TABLE IF EXISTS `nonexistent_table`;
SHOW WARNINGS;
✓

Level | Code | Message                                        
:---- | ---: | :----------------------------------------------
Note  | 1051 | Unknown table 'db_2134513036.nonexistent_table'
DROP TABLE `nonexistent_table`;
SHOW WARNINGS;
Unknown table 'db_2134513036.nonexistent_table'

db<> fiddle here

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

关于mysql - 如果表不存在,为什么 DROP TABLE IF EXISTS 会导致 MySQL 警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65959755/

相关文章:

mysql - 将base64编码的数据存储为BLOB或TEXT数据类型

php - 查询清理旧表或创建新表

php - 需要优化php mysql中的插入查询

MySQL导入/导出版本不兼容

MySQL 错误代码 : 1054 Unknown column 'field' in 'field list'

php - 左加入 Doctrine 查询语言

mysql - Magento - addOrderedQty 多个日期

mysql - 计算一个值在表的任何列中的出现次数

SQL : How to aggregate values of one column depending on conditions applied on 2 other columns?

sql - 选择返回动态列