phoenix 修改表字段

主要記錄下apache phoenix 修改表字段的一種變通方式,僅供參考

 

 CREATE TABLE IF NOT EXISTS t_appversion (
  f_region_id VARCHAR,
  f_province_id VARCHAR,
  f_province_name VARCHAR,
  f_terminal INTEGER ,
  f_phone_model VARCHAR,
  f_app_version VARCHAR,
  f_hard_version VARCHAR,
  f_ca_id VARCHAR
     constraint pk primary key(f_ca_id)
 );  

例如 t_appversion 表中f_terminal字段要修改varchar類型,我們可以通過備份t_appversion 數據,然後創建一個結構類似的表

 CREATE TABLE IF NOT EXISTS test_appversion (
  f_region_id VARCHAR,
  f_province_id VARCHAR,
  f_province_name VARCHAR,
  f_terminal VARCHAR,
  f_phone_model VARCHAR,
  f_app_version VARCHAR,
  f_hard_version VARCHAR,
  f_ca_id VARCHAR
     constraint pk primary key(f_ca_id)
 );  

然後進行數據遷移主要使用了UPSERT SELECT 語法,數據遷移到臨時表中

歷史數據遷移到臨時表中
UPSERT into test_appversion  select * from  t_appversion  

刪除目標表  t_appversion,
drop table   t_appversion;

 

刪除目標表  t_appversion,再從創建  t_appversion,結構和臨時表(test_appversion)相同.

再次數據遷移,將臨時表中的數據遷移到目標表中t_appversion,

歷史數據遷移到臨時表中
UPSERT into  t_appversion   select * from  test_appversion  

刪除臨時  test_appversion  ,
drop table   test_appversion  ;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章