Hive修改表属性

目录

语法

Rename To… 语句

Change 语句

添加列语句

REPLACE语句

创建一个Schema一样的新表-- Like

hive表修改TBLPROPERTIES:


语法

ALTER TABLE name RENAME TO new_name
ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...]) 
ALTER TABLE name DROP [COLUMN] column_name
ALTER TABLE name CHANGE column_name new_name new_type
ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...])

Rename To… 语句

  • 对于内部表,除了更新表的元数据之外,还对表的目录名称进行修改。
  • 对于外部表,这个操作只更新元数据,但不会更改存放数据的目录名称。
ALTER TABLE oldTableName RENAME TO newTableName;

Change 语句

下表包含employee表的字段,它显示的字段要被更改。

 
 

下面查询重命名使用上述数据的列名和列数据类型:

ALTER TABLE employee CHANGE name ename String; 
ALTER TABLE employee CHANGE salary salary Double;

添加列语句

下面的查询增加了一个列名dept在employee表。

ALTER TABLE employee ADD COLUMNS (dept STRING COMMENT 'Department name');

添加列到指定位置

-- 先添加列
alter table rpt_msg_data_daily add columns (ac_sendmsgnum bigint comment '发送misscall留言条数');

-- 再修改位置
alter table rpt_msg_data_daily change ac_sendmsgnum ac_sendmsgnum bigint after avg_len ; 

 

REPLACE语句

这个操作其实是将原有的列删除,然后再添加新的指定的列。

ALTER TABLE employee REPLACE COLUMNS ( eid INT empid Int, ename STRING name String)

备注:

ALTER TABLE  table_name  add columns( dept string COMMENT '') CASCADE;

加分区表字段需要加上CASCADE

创建一个Schema一样的新表-- Like

CREATE TABLE new_table LIKE existing_table;

hive表修改TBLPROPERTIES:

修改TBLPROPERTIES内的数据命令:

alter table table_name set TBLPROPERTIES ('EXTERNAL'='TRUE'); -- 内部表转外部表

alter table table_name set TBLPROPERTIES ('EXTERNAL'='FALSE'); -- 外部表转内部表

Hive 修改表注释:

ALTER TABLE xxx SET TBLPROPERTIES('comment' = 'XXX');

 

整理自:
1.https://www.cnblogs.com/skyl/p/4736587.html
2.https://www.cnblogs.com/linn/p/6233776.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香山上的麻雀1008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值