取消
顯示的結果
而不是尋找
你的意思是:

插入或合並成一個表生成的身份

原因就是
新的貢獻者二世

你好,

當我創建一個使用生成的標識列總是作為身份聲明和我試圖插入或合並數據表我得到以下錯誤消息:

不能寫“表”,沒有足夠的數據列;目標表x列(s),但插入的數據x - 1列(s)

難道這個工作嗎?

1接受解決方案

接受的解決方案

Vinay_M_R
重視貢獻二世
重視貢獻二世

更新目標三角洲表的所有列的相應列源數據集,使用更新組*。這相當於更新設置col1 =來源。col1 [, col2 =來源。col2……)目標三角洲表的所有列。因此,這一行動假定源表具有相同的列的目標表,否則查詢將拋出一個分析錯誤。”
所以它將拋出一個錯誤如果他們不完全匹配。除非你啟用了模式演化這適用於:
“目標表中的一列不是出現在源表。目標模式是不變的;額外的目標列中的值保持不變(更新)或設置為NULL(插入)。”

其預期行為,更新組*似乎隻想忽略額外的列在源。

在原帖子查看解決方案

3回複3

Vinay_M_R
重視貢獻二世
重視貢獻二世

@Mrk美好的一天!

請使用下麵的語法在使用生成的總是作為標識:

步驟1:
在創建表和列生成的id作為總是定義為身份提條件應該如何生成的id。

%的sql
創建表默認。testidentityfinal (
生成id bigint總是身份(從1增加1),
名稱字符串
);


步驟2:而將值插入到表中提到的列名在()你想要插入的值。
%的sql
插入default.testidentityfinal(名字)值(“威”)
我還附加的快照筆記本內部繁殖以及輸出,供您參考。
請讓我知道如果這工作。

原因就是
新的貢獻者二世

你好,

是的,這個工作,但是我很好奇,為什麼“合並成…更新設置*”和“插入表的SELECT *從源”失敗?有某種形式的內部字段名稱解析的問題?

Vinay_M_R
重視貢獻二世
重視貢獻二世

更新目標三角洲表的所有列的相應列源數據集,使用更新組*。這相當於更新設置col1 =來源。col1 [, col2 =來源。col2……)目標三角洲表的所有列。因此,這一行動假定源表具有相同的列的目標表,否則查詢將拋出一個分析錯誤。”
所以它將拋出一個錯誤如果他們不完全匹配。除非你啟用了模式演化這適用於:
“目標表中的一列不是出現在源表。目標模式是不變的;額外的目標列中的值保持不變(更新)或設置為NULL(插入)。”

其預期行為,更新組*似乎隻想忽略額外的列在源。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map