为什么删除不存在的表 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/