2016-11-14 81 views
1

ALTER TABLE ABC添加列(stats1地圖,地圖stats2)如何將列添加到現有的配置單元分區表中?

我已經改變了我的桌子上面查詢。但在檢查數據後,我得到了兩個額外的列的NULL。我沒有收到數據。 enter image description here

+0

你有什麼數據?你如何創建表格?提供更多信息進行分析。 –

+0

感謝Sathiyan的回覆。 表已通過框架支持創建。 ALTER TABLE ABC添加列(stats1地圖<字符串,字符串>,stats2地圖<字符串,字符串>) 在我的示例數據我有GB:4和US:5爲這兩個額外的列 我上面的查詢中使用將列添加到該配置單元表。但在我的數據中,我發現了兩個手動添加列的空值。 –

+0

創建表格查詢時,應該將地圖的分隔符稱爲':'。檢查行格式應該如何爲地圖,你會得到答案。 –

回答

1

要添加列插入你需要重新創建分區的分區表。 假設表是外部數據文件並且數據文件已包含新列,請執行以下操作: 1.更改表格添加列... 2.重新創建分區。對於每個分區,執行Drop然後創建。新創建的分區模式將繼承表模式。

或者你可以刪除這個表然後創建表,並創建所有分區或恢復他們只需運行MSCK REPAIR TABLE abc命令。

這些建議適用於外部表格。

0

CASCADE是解決方案。

ALTER TABLE dbname.table_name ADD列(列1串,列2字符串)CASCADE;

這會更改表的元數據的列,並將相同的更改級聯到所有分區元數據。 RESTRICT是默認值,僅將列更改限制爲表元數據。