
# DROP TABLE IF EXISTS语法误区
#### 问题现象
使用DROP TABLE IF EXISTS语句删除表存在语法误区，理解不当将会删除错误。
#### 原因分析
DROP TABLE IF EXISTS语法可以简单这样理解：
1. 判断当前CN是否存在该table。
2. 如果存在，就给其他CN和DN下发DROP命令；如果不存在，则跳过。
而不是：
1. 将DROP TABLE IF EXISTS下发给所有CN和DN。
2. 各个CN和DN判断自己有没有该table，如果有的话执行DROP。
 
#### 处理方法
如果出现某些表定义在部分CN/DN存在，部分CN/DN不存在时，是不可以直接用DROP TABLE IF EXISTS修复的。
这种情况的通用修复方式为：
1. CREATE TABLE IF NOT EXISTS将所有CN和DN的表定义补齐。
2. 如果表没有用，就在CN上DROP table删掉所有CN和DN的表定义，如果表还有用，继续使用即可。
 
