我想向配置单元表中的特定位置添加一个新列。当我添加新列时,它会转到最后一个位置。
mf98qq941#
人们多久跑步一次 SELECT * ?? 通常,人们在select语句中列出每一列。只需将列添加到末尾,然后进行如下调整 SELECT last_col, first_col, second_col ... 或者,创建一个运行select语句的视图,该语句按所需的列顺序排列。将表重命名为其他名称,并将视图命名为表,没有人会知道任何不同
SELECT *
SELECT last_col, first_col, second_col ...
eqoofvh92#
您需要重新创建表。如果表是外部的,并且数据已经包含新列,则发出 drop 以及 create table 声明。一般解决方案是:
drop
create table
1. create new_table...; 2. insert overwrite new_table select from old_table; 3. drop old_table; 4. alter new_table rename to old_table;
另外,如果数据文件在某些位置已经包含新列,则可以
1. Alter table add column
使用以下示例更改列位置:
2. ALTER TABLE test_change CHANGE old_name new_name STRING AFTER other_col CASCADE;
参见此处的文档:更改列名/类型/位置/注解
2条答案
按热度按时间mf98qq941#
人们多久跑步一次
SELECT *
?? 通常,人们在select语句中列出每一列。只需将列添加到末尾,然后进行如下调整SELECT last_col, first_col, second_col ...
或者,创建一个运行select语句的视图,该语句按所需的列顺序排列。将表重命名为其他名称,并将视图命名为表,没有人会知道任何不同
eqoofvh92#
您需要重新创建表。如果表是外部的,并且数据已经包含新列,则发出
drop
以及create table
声明。一般解决方案是:另外,如果数据文件在某些位置已经包含新列,则可以
使用以下示例更改列位置:
参见此处的文档:更改列名/类型/位置/注解