插入
適用於:磚的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年