1.创建表,在d后增加e字段
create table tmpdb.change_column_order_test as
select 1 as a, 2 as b, 3 as c, 4 as d;
alter table tmpdb.change_column_order_test add columns (e int);
查看表内容如下:
2.调整e字段顺序到d字段之后
alter table tmpdb.change_column_order_test change e e int after b;
查看表内容如下:
此时发现e c d 这三个字段的内容与之前的不匹配了(之前c的值为3,d的值为4,e的值为null)
3.可以得出结论:hive中修改字段顺序并没有将字段对应的值移动,只是单纯的修改字段名,所以如果表中已经有数据了不推荐这么做,如果想增加字段只能往最后一个字段后添加字段
谨记!!!
4.如果已经将列名修改了,该怎么复原呢?其实很简单,将新增字段移动原始表的最后一个字段
alter table tmpdb.change_column_order_test change e e int after d;