2

我想在配置单元表中的特定位置添加一个新列。当我添加新列时,它会转到最后一个位置。

4

2 回答 2

2

您需要重新创建表。如果表是外部的并且数据已经包含新列,则发出dropcreate 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;

请参阅此处的文档:更改列名称/类型/位置/评论

于 2017-12-15T07:23:26.433 回答
2

人们多久跑步SELECT *一次?通常,人们会列出 select 语句中的每一列。只需将列添加到末尾,然后进行调整SELECT last_col, first_col, second_col ...


或者,创建一个 VIEW 以运行具有所需列顺序的 select 语句。

将表格重命名为其他名称,并将视图命名为表格,没有人会知道有什么不同

于 2017-12-16T01:27:12.987 回答