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(“赢家”);