hive里添加字段到指定位置不能一步到位,需要分两步,先添加字段,再移动字段到指定位置,如下
alter table tmp add columns (cl_name string comment 'co_name'); --添加在最后
alter table tmp change cl_name cl_name string after cl_name0 ; -- 移动到指定位置,cl_name0字段的后面
alter table tmp change cl_name cl_name string first; --插入到到第一列
在mysql 中添加字段可以一步到位,一句SQL就可以解决,如下
alter table tmp add cl_name int default 0 after cl_name0; -- 移动到指定位置
alter table tmp add cl_name int default 0 first; --插入到到第一列
alter table tmp modify cl_name int after cl_name0; --修改列的位置
alter table tmp modify cl_name int first;
在hive中添加字段需要注意的是,如果原表中有数据,修改了两个字段的位置后,仅仅修改的是表结构,数据并没有改变顺序
mysql中改变字段顺序后,数据和表结构都会发生改变