插入
适用于:砖的SQL砖运行时
将新行插入一个表和可选地对表或截断分区。你指定的插入的行值表达式或一个查询的结果。
砖SQL支持这句话只对三角洲湖表。
语法
插入{覆盖|成}(表]table_name(分区条款]((column_name(,…])|通过的名字]查询插入成(表]table_name取代在哪里谓词查询
请注意
当你插入成
δ表模式支持执法和演化。如果一个列的数据类型不能安全地把δ表的数据类型,一个运行时异常。如果模式演化启用新列可以作为最后一列你的存在模式(或嵌套列)模式演变。
参数
成
或覆盖
如果您指定
覆盖
以下应用:没有一个
partition_spec
表插入第一行之前被截断。否则,匹配的所有分区
partition_spec
在插入之前截断第一行。
如果您指定
成
所有行插入附加到现有的行。标识表插入。必须不包含一个名称时间规范。如果表不能发现砖了TABLE_OR_VIEW_NOT_FOUND错误。
table_name
不得外国表。一个可选参数,指明目标分区的插入。你也只是部分指定分区。
当指定静态分区
列=价值
这一列不能重复在插入列清单中。(column_name[…])
一个可选列表列在表中。插入命令可以指定任何特定列的表最多一次。
适用于:砖的SQLSQL仓库2023.20版本或更高版本砖运行时12.2及以上
如果该命令省略了一个专栏,砖SQL分配相应的默认值。
如果目标表模式没有定义任何默认值插入列,砖SQL分配
零
如果列可以为空。否则,砖SQL提出了一个错误。
提供没有相当于指定所有列列名单,除了那些分配值
分区
条款,在订单表中定义。通过的名字
适用于:砖运行时13.3及以上
当这一条款是用来代替显式列列表,命令使用公开的列名
查询
产生的列列表的顺序查询
。与一个明确的列列表,每一列必须存在于目标表,不得重复。如果一个列中table_name
不是隐含列列表的一部分默认的
值代替。通过的名字
也匹配的属性结构体的名字。没有列
查询
匹配一个列中指定的吗分区
条款或任何生成的列。替代的地方boolean_expression
适用于:砖的SQL砖运行时12.0及以上
如果
table_name
是一个三角洲湖表,删除行匹配boolean_expression
在插入任何行匹配布尔表达式
中指定的查询
。行查询
它不匹配boolean_expression
将被忽略。boolean_expression
可以是任何表达式,计算结果类型吗布尔
。一个查询产生行插入。
你必须匹配查询返回的列数与指定的或隐含插入列清单。
如果一个数据类型不能安全地把匹配的列的数据类型,一个运行时异常。
适用于:砖的SQLSQL仓库2022.35版本或更高版本砖运行时11.2及以上
如果模式演化启用新列可以作为最后一列你的存在模式(或嵌套列)模式演变。
例子
插入
插入使用值
>创建表学生(的名字VARCHAR(64年),地址VARCHAR(64年)默认的“未知”,student_idINT)分区通过(student_id);使用“值”——单行插入条款指定所有列。>插入成学生值(艾米·史密斯的,公园大街123号,圣何塞,111111年);——单行插入使用一个隐式的默认地址>插入成学生(的名字,student_id)值(格雷森·米勒的,222222年);——单行插入使用显式的默认关键字地址>插入成学生值(“Youna金”,默认的,333333年);使用“值”条款——多行插入>插入成学生值(“鲍勃·布朗”,456年泰勒圣,库比蒂诺,444444年),(“凯茜约翰逊”,“种族大街789号,帕洛阿尔托”,555555年);——多行插入使用的默认和文本>插入成学生值(“赵格温妮斯”,120年主要圣Rockport”,666666年),(“杰克逊彼得森”,默认的,777777年);>选择*从学生;的名字地址student_id- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -艾米史密斯123年公园大街,圣穆111111年格雷森米勒未知的222222年Youna金未知的333333年鲍勃布朗456年泰勒圣,库比蒂诺444444年凯西约翰逊789年比赛大街,加州中音555555年格温妮斯赵120年主要圣,Rockport666666年杰克逊彼得森未知的777777年
插入使用子查询
——假设人表已经创建并填充。>选择*从人;的名字地址ssn- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -朵拉威廉姆斯134年森林大街,梅洛公园123456789埃迪戴维斯245年市场圣,苗必达345678901>插入成学生分区(student_id=444444年)选择的名字,地址从人在哪里的名字=“朵拉·威廉姆斯”;>选择*从学生;的名字地址student_id- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -艾米史密斯123年公园大街,圣穆111111年鲍勃布朗456年泰勒圣,库比蒂诺222222年凯西约翰逊789年比赛大街,加州中音333333年朵拉威廉姆斯134年森林大街,梅洛公园444444年
插入使用表
条款
——假设visiting_students表已经创建并填充。>选择*从visiting_students;的名字地址student_id- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -弗勒劳伦特345年铜圣,伦敦777777年戈登马丁779年湖大街,牛津大学888888年>插入成学生表visiting_students;>选择*从学生;的名字地址student_id- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -艾米史密斯123年公园大街,圣穆111111年鲍勃布朗456年泰勒圣,库比蒂诺222222年凯西约翰逊789年比赛大街,加州中音333333年朵拉威廉姆斯134年森林大街,梅洛公园444444年弗勒劳伦特345年铜圣,伦敦777777年戈登马丁779年湖大街,牛津大学888888年
插入一列名单
>插入成学生(地址,的名字,student_id)值(“杭州”,“肯特么”,11215016);>选择*从学生在哪里的名字=“肯特么”;的名字地址student_id- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -肯特姚杭州,中国11215016
插入一个分区规范和一个列清单
>插入成学生分区(student_id=11215017)(地址,的名字)值(“杭州”,“肯特么。”);>选择*从学生在哪里student_id=11215017;的名字地址student_id- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -肯特姚小。杭州,中国11215017
插入使用的名字条款
>创建表目标(n INT,文本字符串,STRUCT b < INT, INT >);>插入目标按名称选择named_struct (“b”2“, 1)年代,0 n,“数据”作为文本;从目标> SELECT *;0数据{“a”: 1、“b”: 2} >创建或替换表目标(arr n INT数组< STRUCT < a INT, INT > >);>插入目标按名称选择阵列(named_struct (“b”2“, 1))作为加勒比海盗,0 n;>插入目标按名称选择阵列(named_struct (“b”2“, 1))加勒比海盗;从目标> SELECT *;0 [{“a”: 1、“b”: 2}]零[{“a”: 1、“b”: 2}] >插入目标按名称选择数组(named_struct (' b ' 2 ' ', 1))作为加勒比海盗,0 badname;错误>插入目标按名称选择阵列(named_struct (“b”2“, 1))作为加勒比海盗,0 n, n 1;错误:INSERT_COLUMN_ARITY_MISMATCH.TOO_MANY_DATA_COLUMNS
替代的地方
>创建表销售(tx_date日期,量整数);>插入成销售值(日期“2022-10-01”,1234年),(日期“2022-10-02”,2345年),(日期“2022-10-03”,3456年),(日期“2022-11-01”,3214年);——任何行替换为一个事务日期2022年10月。>插入成销售取代在哪里tx_date之间的“2022-10-01”和“2022-10-31”值(日期“2022-10-01”,1237年),(日期“2022-10-02”,2378年),(日期“2022-10-04”,2456年),(日期“2022-10-05”,6328年);>选择*从销售订单通过tx_date;tx_date量- - - - - - - - - - - - - - - - -2022年- - - - - -10- - - - - -011237年2022年- - - - - -10- - - - - -022378年2022年- - - - - -10- - - - - -042456年2022年- - - - - -10- - - - - -05年6328年2022年- - - - - -11- - - - - -013214年
插入覆盖
插入使用值
条款
——假设学生已经创建并填充表。>选择*从学生;的名字地址student_id- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -艾米史密斯123年公园大街,圣穆111111年鲍勃布朗456年泰勒圣,库比蒂诺222222年凯西约翰逊789年比赛大街,加州中音333333年朵拉威廉姆斯134年森林大街,梅洛公园444444年弗勒劳伦特345年铜圣,伦敦777777年戈登马丁779年湖大街,牛津大学888888年海伦戴维斯469年任务圣,圣迭戈999999年杰森王908年鸟圣,萨拉托加121212年>插入覆盖学生值(“Ashua山”,456年埃里卡Ct,库比蒂诺,111111年),(“布莱恩·里德”,Kern大街723号,帕洛阿尔托,222222年);>选择*从学生;的名字地址student_id- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Ashua山456年艾丽卡Ct,库比蒂诺111111年布莱恩里德723年克恩大街,加州中音222222年
插入使用子查询
——假设人表已经创建并填充。>选择*从人;的名字地址ssn- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -朵拉威廉姆斯134年森林大街,梅洛公园123456789埃迪戴维斯245年市场圣,苗必达345678901>插入覆盖学生分区(student_id=222222年)选择的名字,地址从人在哪里的名字=“朵拉·威廉姆斯”;>选择*从学生;的名字地址student_id- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Ashua山456年艾丽卡Ct,库比蒂诺111111年朵拉威廉姆斯134年森林大街,梅洛公园222222年
插入使用表
条款
——假设visiting_students表已经创建并填充。>选择*从visiting_students;的名字地址student_id- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -弗勒劳伦特345年铜圣,伦敦777777年戈登马丁779年湖大街,牛津大学888888年>插入覆盖学生表visiting_students;>选择*从学生;的名字地址student_id- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -弗勒劳伦特345年铜圣,伦敦777777年戈登马丁779年湖大街,牛津大学888888年