1,内部表转换为外部表,EXTERNAL大写
ALTER TABLE tablename SET TBLPROPERTIES ('EXTERNAL' = 'true');
修改完成后,查看MySQL元数据TBLS表,发现该表这条数据对应的TBL_TYPE字段变成了 EXTERNAL_TABLE
尝试DROP这个table之后,该表在hdfs上面的数据不会被删除了,因为变成了外部表了
但是元数据表TBLS里面关于该表的还是会被删除
2,外部表转内部表,EXTERNAL大写
ALTER TABLE emp_external SET TBLPROPERTIES ('EXTERNAL' = 'false');
修改完成后,查看MySQL元数据TBLS表,发现该表这条数据对应的TBL_TYPE字段变成了 MANAGED_TABLE
尝试DROP这个table之后,该表在hdfs上面的数据被删除了,因为变成了内部表了
但是元数据表TBLS里面关于该表的还是会被删除
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-AlterTable/Partition/Column
ALTER TABLE table_name SET TBLPROPERTIES table_properties;
参考上面这个语句和官网链接