ALTER TABLE
適用於:磚的SQL磚運行時
改變了模式或一個表的屬性。
更改或重命名列型三角洲湖修改的數據。
改變評論表使用評論。
如果緩存表,表的命令清除緩存數據及其家屬,引用它。緩存會懶洋洋地填在表或家屬下次訪問。
隻對外國表,您可以執行改變表集老板
和改變表重命名來
。
語法
改變表table_name{重命名來條款|添加列條款|改變列條款|下降列條款|重命名列條款|添加約束條款|下降約束條款|添加分區條款|下降分區條款|重命名分區條款|恢複分區條款|集TBLPROPERTIES條款|設置TBLPROPERTIES條款|集SERDE條款|集位置條款|集老板來條款}
參數
標識表被修改。必須不包含一個名稱時間規範。如果表不能發現磚了TABLE_OR_VIEW_NOT_FOUND錯誤。
重命名為to_table_name
重命名表在同一個模式。
請注意
如果你使用AWS膠metastore數據目錄,重命名不支持。
識別新表的名稱。必須不包含一個名稱時間規範。
添加一列
這一條款不支持
JDBC
數據源。將一個或多個列添加到表或字段現有三角洲湖表中的列。
{添加(列|列]({{column_identifier|field_name}data_type(默認的條款](評論評論](第一個|後標識符]}(,…])}
添加的列的名稱。在表的名稱必須是惟一的。
除非
第一個
或後的名字
指定列或字段將被附加。的完全限定名稱字段添加到現有的列。所有組件的嵌套域的路徑必須存在和字段名稱本身必須是唯一的。
默認default_expression
適用於:磚的SQLSQL倉庫2022.35版本或更高版本磚運行時11.2及以上
定義了一個
默認的
使用值的列插入
和合並…插入
如果不指定列值。如果沒有指定默認值,
默認的零
是空列的暗示。default_expression
可能是由文字組成的,和內置的SQL函數或運算符除外:default_expression
必須不包含任何子查詢。默認的
支持CSV
,JSON
,拚花
,獸人
來源。指定列的數據類型或字段。並不是所有的數據類型支持的磚都支持的數據源。
評論發表評論
一個可選的字符串文字描述添加列或字段。
第一個
如果指定的列將被添加作為表的第一列,或第一個字段的字段將被添加在包含結構。
後標識符
如果指定的列或字段字段或列後立即將被添加
標識符
。
改變列
改變一個屬性或一列的位置。
{{改變|改變}(列]{column_identifier|field_name}{評論評論|{第一個|後column_identifier}|{集|下降}不零|集默認的條款|下降默認的|同步身份}}
被修改的列的名稱。
場的完全限定名稱被改變。所有組件的嵌套域的路徑必須存在。
評論發表評論
改變的描述
column_name
列。評論
必須是一個字符串。第一個或後標識符
將列從當前位置到前麵(
第一個
)或立即後
的標識符
。如果此條款僅支持table_name
是一個三角洲表格。集非空或減少非空
更改域的有效排除null列值
集不零
,或包含null下降不零
。此選項僅支持三角洲湖表。三角洲湖將確保所有現有的和新數據的約束是有效的。同步的身份
適用於:磚的SQL磚運行時10.3及以上
同步標識列的元數據和實際的數據。當您編寫自己的價值觀來一個標識列,它可能不符合的元數據。這個選項對國家和更新元數據與實際數據相一致。這個命令之後,下一個自動分配值將從身份
開始+(n+1)*一步
,在那裏n
是滿足的最小值開始+n*一步> =max ()
(對於一個積極的步驟)。此選項僅支持三角洲湖上標識列的表。
降低違約
適用於:磚的SQLSQL倉庫2022.35版本或更高版本磚運行時11.2及以上
刪除默認表達式列。這相當於為nullable列
集默認的零
。為列定義不零
您需要提供一個值在每一個未來插入
操作默認default_expression
適用於:磚的SQLSQL倉庫2022.35版本或更高版本磚運行時11.2及以上
定義了一個
默認的
使用值的列插入
和合並…插入
如果不指定列值。如果沒有指定默認的
默認的零
是空列的暗示。default_expression
可能是由文字組成的,內置的SQL函數,或者運營商除了:default_expression
不能包含一個子查詢。默認的
支持CSV
,JSON
,獸人
,拚花
來源。當你為一個新添加的列定義默認值,默認的適用於所有的行。如果默認包含一個非確定性等功能
蘭德
或current_timestamp
當價值計算一次改變表
執行,應用已有的行作為一個常數。對於新插入的行,默認表達式每運行一次行。當你設置一個默認使用
改變列
不受變化的影響,現有的行。指定列的數據類型或字段。並不是所有的數據類型支持的磚都支持的數據源。
刪除列
預覽
這個特性是在公共預覽。
適用於:磚的SQL磚運行時11.0及以上
下降一個或多個列在三角洲湖表或字段。
當你刪除一個列或字段,你必須依賴檢查約束和生成的列。
要求,請參閱重命名和刪除列與三角洲湖列映射。
下降(列|列](如果存在]({{column_identifier|field_name}(,…])
如果存在
當你指定
如果存在
,磚忽略試圖刪除列不存在。否則,刪除不存在的列將會導致一個錯誤。已有的列的名稱。
現有的完全限定名稱字段。
重命名列
預覽
這個特性是在公共預覽。
適用於:磚的SQL磚運行時11.0及以上
重命名表或字段在三角洲湖一列。
在您重命名列或字段還需要改變相關的檢查約束和生成的列。任何主鍵和外鍵列將被刪除。的外鍵必須自己的表定義外鍵。
要求,請參閱重命名和刪除列與三角洲湖列映射。
重命名列{column_identifier來to_column_identifier|field_name來to_field_identifier}
現有的列的名稱。
新列標識符。表中的標識符必須是唯一的。
現有的完全限定名稱的字段。
新字段標識符。在當地結構標識符必須是唯一的。
增加了檢查約束,信息外鍵約束,或信息表主鍵約束。
隻支持外鍵和主鍵的表統一目錄,而不是
hive_metastore
目錄。滴一個主鍵、外鍵或從表檢查約束。
添加分區
如果指定了將一個或多個分區添加到表中。不支持添加分區三角洲湖表。
添加(如果不存在]{分區條款(位置路徑]}(…]
如果不存在
一個可選條款指導磚忽略聲明如果分區已經存在。
添加一個分區。分區鍵必須匹配的分區表和與價值觀有關。如果分區了,除非已經存在一個錯誤
如果不存在
已經指定。位置路徑
路徑
必須是一個字符串代表一個可選的位置指向分區。如果沒有指定位置的位置將由表和分區鍵的位置。
如果有文件出席位置他們填充分區,必須兼容
data_source
的表和它的選項。
刪除分區
如果指定這個子句滴從表中一個或多個分區,分區的位置選擇刪除任何文件。
三角洲湖表不支持刪除的分區。
下降(如果存在]分區條款(,…](清洗]
如果存在
當你指定
如果存在
磚將忽略試圖刪除分區不存在。否則,非現有分區將導致一個錯誤。指定要刪除一個分區。如果分區隻是部分確定了片分區被刪除。
清洗
如果設置,通過跳過表目錄必須刪除分區數據即使在垃圾文件夾目錄配置。適用的選項隻對管理表。它是有效的隻有:
文件係統支持垃圾文件夾。目錄已經被配置為將被刪除分區移動到垃圾文件夾。在AWS S3沒有垃圾文件夾,所以它不是有效的。
不需要手動刪除文件後刪除分區。
重命名分區
替換一個分區的鍵。
三角洲湖表不支持重命名分區。
from_partition_clause重命名來to_partition_clause
分區的定義進行重命名。
這個分區的新定義。一個分區具有相同鍵不能已經存在。
恢複分區
這一條款並不適用於三角洲湖表。
指示磚掃描表的位置,並將任何文件添加到表已被直接添加到文件係統。
集或重置一個或多個用戶定義的屬性。
刪除一個或多個用戶定義的屬性。
設置的位置
移動一個分區或表的位置。
三角洲湖不支持移動個人三角洲湖表的分區。
(分區條款]集位置路徑
可選標識分區的位置將被改變。如果您省略命名一個分區數據磚表的位置移動。
位置路徑
路徑
必須是一個字符串。指定分區的新位置或表。文件將在原來的位置不被移動到新的位置。
組所有者主要
轉移所有權的表
主要
。適用於:磚的SQLSQL倉庫2022.35版本或更高版本磚運行時11.2及以上
集
可以作為一個可選的字。
例子
對三角洲湖添加約束和改變列的例子,看看
——重命名表>描述學生;col_namedata_type評論- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -的名字字符串零rollnoint零年齡int零#分區信息#col_namedata_type評論年齡int零>改變表學生重命名來StudentInfo;之後,重命名表>描述StudentInfo;col_namedata_type評論- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -的名字字符串零rollnoint零年齡int零#分區信息#col_namedata_type評論年齡int零——重命名分區>顯示分區StudentInfo;分區- - - - - - - - - - - -年齡=10年齡=11年齡=12>改變表默認的。StudentInfo分區(年齡=“十”)重命名來分區(年齡=“15”);之後,重命名分區>顯示分區StudentInfo;分區- - - - - - - - - - - -年齡=11年齡=12年齡=15——添加新列一個表>描述StudentInfo;col_namedata_type評論- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -的名字字符串零rollnoint零年齡int零#分區信息#col_namedata_type評論年齡int零>改變表StudentInfo添加列(姓字符串,強加於人時間戳);之後,添加新列的表>描述StudentInfo;col_namedata_type評論- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -的名字字符串零rollnoint零姓字符串零強加於人時間戳零年齡int零#分區信息#col_namedata_type評論年齡int零——添加一個新的分區表>顯示分區StudentInfo;分區- - - - - - - - - - - -年齡=11年齡=12年齡=15>改變表StudentInfo添加如果不存在分區(年齡=18);之後,添加一個新的分區表>顯示分區StudentInfo;分區- - - - - - - - - - - -年齡=11年齡=12年齡=15年齡=18——從表中刪除一個分區>顯示分區StudentInfo;分區- - - - - - - - - - - -年齡=11年齡=12年齡=15年齡=18>改變表StudentInfo下降如果存在分區(年齡=18);之後,刪除的分區表>顯示分區StudentInfo;分區- - - - - - - - - - - -年齡=11年齡=12年齡=15——添加多個分區表>顯示分區StudentInfo;分區- - - - - - - - - - - -年齡=11年齡=12年齡=15>改變表StudentInfo添加如果不存在分區(年齡=18)分區(年齡=20.);之後,將多個分區添加到表中>顯示分區StudentInfo;分區- - - - - - - - - - - -年齡=11年齡=12年齡=15年齡=18年齡=20.——改變或改變列>描述StudentInfo;col_namedata_type評論+- - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - -的名字字符串零rollnoint零姓字符串零強加於人時間戳零年齡int零#分區信息#col_namedata_type評論年齡int零改變表StudentInfo改變列的名字評論“新評論”;之後,改變或改變列>描述StudentInfo;col_namedata_type評論- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -的名字字符串新評論rollnoint零姓字符串零強加於人時間戳零年齡int零#分區信息#col_namedata_type評論年齡int零——重命名列>改變表StudentInfo重命名列的名字來FirstName;之後,重命名列>描述StudentInfo;col_namedata_type評論- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FirstName字符串新評論rollnoint零姓字符串零強加於人時間戳零年齡int零#分區信息#col_namedata_type評論年齡int零——改變文件的位置>改變表dbx。tab1分區(一個=' 1 ',b=' 2 ')集位置“/道路/ /部分/方式”——設置SERDE / SERDE屬性(DBR)>改變表test_tab集SERDE“org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe”;>改變表dbx。tab1集SERDE“org.apache.hadoop”與SERDEPROPERTIES(“k”=“v”,“凱”=“三角”)——設置表屬性>改變表dbx。tab1集TBLPROPERTIES(“贏家”=“失敗者”);——刪除表屬性>改變表dbx。tab1設置TBLPROPERTIES(“贏家”);