我可以
ALTER TABLE table_name ADD COLUMNS (user_id BIGINT)
将新列添加到我的非分区列的末尾和分区列之前.
有没有办法在我的非分区列中的任何位置添加新列?例如,我想把这个新列user_id作为我表的第一列
是的,可以更改列的位置,但只有在使用CHANGE COLUMN在表中添加后才能更改列的位置
在您的情况下,首先使用以下命令将列user_id添加到表中:
ALTER TABLE table_name ADD COLUMNS (user_id BIGINT);
现在将user_id列作为表中的第一列,使用带有FIRST子句的change列:
ALTER TABLE table_name CHANGE COLUMN user_id user_id BIGINT first;
这会将user_id列移动到第一个位置.
同样,如果要在任何其他列之后移动指定的列,则可以使用After而不是first.比如说,我想在user_id列之后移动dob列.然后我的命令是:
ALTER TABLE table_name CHANGE COLUMN dob dob date AFTER user_id;
请注意,此命令仅更改元数据.如果要移动列,则数据必须已与新架构匹配,或者必须通过其他方式更改它以匹配.