HiveSQL Alter表重命名列并且不会移动数据

时间:2019-05-21 20:42:57

标签: sql hiveql

我有一个包含100列的表格。我想将此表中的一列移到新位置。

例如,我的表(名为“ sample_table”)如下所示:

var1, var2, var3, var4
w,    x,    y,    z

基本上,我想创建一个如下表:

var1, var2, var4, var3
w,    x,    z,    y

我尝试使用:

ALTER TABLE sample_table CHANGE var3
var3 STRING AFTER var4

但是我得到了

var1, var2, var4, var3
w,    x,    y,    z 

所以我所要做的就是重命名最后一列而不移动该列中的数据。

我知道我可以编写一个create table语句,并在其中使用select语句按所需顺序排列列。但是,当我有100列的列并且只需要在整个表中移动一列时,这似乎效率很低。

我将如何移动整个列而不仅仅是重命名?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用多个语句:

ALTER TABLE sample_table CHANGE var3 var3_ STRING;
ALTER TABLE sample_table CHANGE var4 var3 STRING;
ALTER TABLE sample_table CHANGE var3_ var4 STRING;