-- Rename Table ALTER TABLE tbl1 RENAME TO tbl2; -- Alter Table Properties ALTER TABLE mydb.tb22 SET TBLPROPERTIES ('creator'='hayden'); -- Alter Table Comment ALTER TABLE mydb.tb22 SET TBLPROPERTIES ('comment' = 'This is a new comment!'); -- Add SerDe Properties ALTER TABLE employee_tb SET SERDE 'com.dt.test'; ALTER TABLE employee_tb PARTITION ( `pt1`='1' ) SET SERDE 'com.dt.test'; ALTER TABLE employee_tb SET SERDE 'com.dt.test' WITH SERDEPROPERTIES ('field.delim' = ','); ALTER TABLE employee_tb PARTITION ( `pt1`='1' ) SET SERDE 'com.dt.test' WITH SERDEPROPERTIES ('field.delim' = ','); ALTER TABLE sale_rbl PARTITION ( `pt1`='1' ) SET SERDEPROPERTIES ('field.delim' = ','); ALTER TABLE sale_rbl SET SERDEPROPERTIES ('field.delim' = ','); -- Remove SerDe Properties ALTER TABLE sale_rbl UNSET SERDEPROPERTIES ('field.delim'); ALTER TABLE sale_rbl PARTITION ( `pt1`='1' ) UNSET SERDEPROPERTIES ('field.delim'); -- Alter Table Storage Properties ALTER TABLE students CLUSTERED BY (id, `name`, age) SORTED BY (age) INTO 2 BUCKETS; ALTER TABLE students CLUSTERED BY (id, `name`, age) INTO 2 BUCKETS; -- Alter Table Skewed or Stored as Directories ALTER TABLE dt_shop SKEWED BY (id, cost) ON (('id',1), ('cost', 1000)); ALTER TABLE dt_shop SKEWED BY (id, cost) ON (('id',1), ('cost', 1000)) STORED AS DIRECTORIES; -- Alter Table Not Skewed ALTER TABLE dt_shop NOT SKEWED; -- Alter Table Not Stored as Directories ALTER TABLE dt_shop NOT STORED AS DIRECTORIES; -- Alter Table Set Skewed Location ALTER TABLE dt_shop SET SKEWED LOCATION ('id'='location1', "cost"="loaction2" ); -- Alter Table Constraints ALTER TABLE tbl1 ADD CONSTRAINT const1 PRIMARY KEY (id) DISABLE NOVALIDATE; ALTER TABLE tbl2 ADD CONSTRAINT const2 FOREIGN KEY (id, `name`) REFERENCES refer_tb(rid, rname) DISABLE NOVALIDATE RELY; ALTER TABLE tbl3 ADD CONSTRAINT const3 UNIQUE (`name`, `age`) DISABLE NOVALIDATE; ALTER TABLE tbl4 CHANGE COLUMN `col1` `col2` STRING CONSTRAINT const4 NOT NULL ENABLE; ALTER TABLE tbl5 CHANGE COLUMN `col3` `col4` INT CONSTRAINT const5 DEFAULT 998 ENABLE; ALTER TABLE tbl6 CHANGE COLUMN col5 col6 MAP CONSTRAINT const6 CHECK (1) ENABLE; ALTER TABLE tbl7 DROP CONSTRAINT remove_const; -- Alter Partition ALTER TABLE add_par_tbl ADD PARTITION (`pt1` = 1); ALTER TABLE add_par_tbl ADD PARTITION (`pt1` = 1) LOCATION '/pat/loc'; ALTER TABLE add_par_tbl ADD PARTITION (`pt1` = 1) LOCATION '/pat/loc' PARTITION (`pt2` = 2, `pt3`=3) LOCATION '/pat/loc' ; ALTER TABLE add_par_tbl ADD IF NOT EXISTS PARTITION (`pt1` = 1); ALTER TABLE add_par_tbl ADD IF NOT EXISTS PARTITION (`pt1` = 1) LOCATION '/pat/loc'; ALTER TABLE add_par_tbl ADD IF NOT EXISTS PARTITION (`pt1` = 1) LOCATION '/pat/loc' PARTITION (`pt2` = 2, `pt3`=3) LOCATION '/pat/loc'; -- Rename Partition ALTER TABLE ren_par_tbl PARTITION (`pt1`=1) RENAME TO PARTITION (`pt2`=2) ; -- Exchange Partition ALTER TABLE ex_part_tbl2 EXCHANGE PARTITION (`pt1`=1) WITH TABLE ex_part_tbl1; ALTER TABLE ex_part_tbl2 EXCHANGE PARTITION (`pt1`=1, `pt2`=2) WITH TABLE ex_part_tbl1; -- Recover Partitions MSCK TABLE rec_tbl; MSCK REPAIR TABLE rec_tbl; MSCK REPAIR TABLE rec_tbl SYNC PARTITIONS; MSCK REPAIR TABLE rec_tbl ADD PARTITIONS; MSCK REPAIR TABLE rec_tbl DROP PARTITIONS; ALTER TABLE rec_tbl RECOVER PARTITIONS; -- Drop Partitions ALTER TABLE dr_tbl1 DROP PARTITION (`pt1`=1); ALTER TABLE dr_tbl1 DROP PARTITION (`pt1`=1, `pt2`=2); ALTER TABLE dr_tbl1 DROP PARTITION (`pt1`=1) IGNORE PROTECTION; ALTER TABLE dr_tbl1 DROP PARTITION (`pt1`=1) IGNORE PROTECTION PURGE; ALTER TABLE dr_tbl2 DROP IF EXISTS PARTITION (`pt2`=2) PURGE; ALTER TABLE dr_tbl2 DROP IF EXISTS PARTITION (`pt2`=2) IGNORE PROTECTION PURGE; -- Archive Partition ALTER TABLE arch_pt_tbl1 ARCHIVE PARTITION (`pt1`=1); ALTER TABLE arch_pt_tbl2 UNARCHIVE PARTITION (`pt2`=2) ; -- Alter Table/Partition File Format ALTER TABLE tbl1 SET FILEFORMAT orc; ALTER TABLE tbl2 PARTITION (`pt1`=1) SET FILEFORMAT orc; -- Alter Table/Partition Location ALTER TABLE tbl3 SET LOCATION "new location"; ALTER TABLE tbl4 PARTITION (`pt1`=1) SET LOCATION "new location"; -- Alter Table/Partition Touch ALTER TABLE tbl5 TOUCH; ALTER TABLE tbl6 TOUCH PARTITION (`pt1`=1); -- Alter Table/Partition Protections ALTER TABLE tbl7 ENABLE NO_DROP; ALTER TABLE tbl7 DISABLE NO_DROP; ALTER TABLE tbl7 ENABLE NO_DROP CASCADE; ALTER TABLE tbl7 DISABLE NO_DROP CASCADE; ALTER TABLE tbl8 PARTITION (`pt1`=1) DISABLE NO_DROP; ALTER TABLE tbl8 PARTITION (`pt1`=1) ENABLE NO_DROP; ALTER TABLE tbl8 PARTITION (`pt1`=1) DISABLE NO_DROP CASCADE; ALTER TABLE tbl8 PARTITION (`pt1`=1) ENABLE NO_DROP CASCADE; ALTER TABLE tbl9 DISABLE OFFLINE; ALTER TABLE tbl9 ENABLE OFFLINE; ALTER TABLE db1.tbl PARTITION (`pt1`=1) ENABLE OFFLINE; ALTER TABLE db1.tbl PARTITION (`pt1`=1) DISABLE OFFLINE; ALTER TABLE foo PARTITION (ds='2008-04-08', hr=11) CHANGE COLUMN dec_column_name dec_column_name DECIMAL(38,18); -- Alter Table/Partition Compact ALTER TABLE tbl_com COMPACT 'compaction_type'; ALTER TABLE tbl_com2 PARTITION (pt1 = 'partition_value') COMPACT 'compaction_type'; ALTER TABLE tbl_com2 PARTITION (pt1 = 'partition_value') COMPACT 'compaction_type' AND WAIT; ALTER TABLE tbl_com2 PARTITION (pt1 = 'partition_value') COMPACT 'compaction_type' AND WAIT CLUSTERED INTO 1 BUCKETS; ALTER TABLE tbl_com2 PARTITION (pt1 = 'partition_value') COMPACT 'compaction_type' AND WAIT CLUSTERED INTO 1 BUCKETS ORDER BY col1; ALTER TABLE tbl_com2 PARTITION (pt1 = 'partition_value') COMPACT 'compaction_type' AND WAIT CLUSTERED INTO 1 BUCKETS ORDER BY col1 POOL 'pool1'; ALTER TABLE tbl_com2 PARTITION (pt1 = 'partition_value') COMPACT 'compaction_type' AND WAIT CLUSTERED INTO 1 BUCKETS ORDER BY col1 POOL 'pool1' WITH OVERWRITE TBLPROPERTIES ("propKey1"="propVal"); -- Alter Table/Partition Concatenate ALTER TABLE tbl22 CONCATENATE; ALTER TABLE tbl23 PARTITION (pt1 = 'anyValue') CONCATENATE; ALTER TABLE tbl23 PARTITION (pt1 = 'anyValue', pt2 = 'anyValue2') CONCATENATE; -- Alter Table/Partition Update columns ALTER TABLE tbl24 UPDATE COLUMNS; ALTER TABLE tbl24 PARTITION (pt1 = 'partition_value') UPDATE COLUMNS; ALTER TABLE tbl24 PARTITION (pt1 = 'partition_value', pt2 = 'partition_value2') UPDATE COLUMNS; -- Change Column Name/Type/Position/Comment ALTER TABLE test_change CHANGE a a1 INT; ALTER TABLE test_change CHANGE COLUMN a a1 INT; ALTER TABLE test_change PARTITION (pt1 = 'partition_value') CHANGE c c1 INT FIRST; ALTER TABLE test_change PARTITION (pt1 = 'partition_value') CHANGE c c1 INT FIRST; ALTER TABLE test_change PARTITION (pt1 = 'partition_value') CHANGE COLUMN c c1 INT FIRST; ALTER TABLE test_change PARTITION (pt1 = 'partition_value') CHANGE COLUMN c c1 INT FIRST; ALTER TABLE test_change PARTITION (pt1 = 'partition_value') CHANGE COLUMN c c1 INT COMMENT 'this is comment1' FIRST; ALTER TABLE test_change PARTITION (pt1 = 'partition_value') CHANGE COLUMN c c1 INT COMMENT 'this is comment1' AFTER cc; ALTER TABLE test_change PARTITION (pt1 = 'partition_value') CHANGE COLUMN c c1 INT COMMENT 'this is comment1' FIRST CASCADE; ALTER TABLE test_change PARTITION (pt1 = 'partition_value') CHANGE COLUMN c c1 INT COMMENT 'this is comment1' AFTER RESTRICT; ALTER TABLE test_change CHANGE a1 a1 INT COMMENT 'this is column a1' RESTRICT; ALTER TABLE test_change CHANGE a1 a2 STRING AFTER b CASCADE; -- Add/Replace Columns ALTER TABLE rp_col_tbl1 ADD COLUMNS (`col1` INT); ALTER TABLE rp_col_tbl2 REPLACE COLUMNS (`col2` INT); ALTER TABLE rp_col_tbl1 ADD COLUMNS (`col1` INT) CASCADE; ALTER TABLE rp_col_tbl2 REPLACE COLUMNS (`col2` INT) RESTRICT; ALTER TABLE rp_col_tbl1 PARTITION (`pt1`=1) ADD COLUMNS (`col1` INT) CASCADE; ALTER TABLE rp_col_tbl2 PARTITION (`pt1`=1) REPLACE COLUMNS (`col2` INT) RESTRICT; ALTER TABLE rp_col_tbl2 PARTITION (`pt1`=1) ADD COLUMNS (`col3` INT COMMENT 'a new col') CASCADE; -- Partial Partition Specification ALTER TABLE foo PARTITION (ds='2008-04-08', hr=11) CHANGE COLUMN dec_column_name dec_column_name DECIMAL(38,18);