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

省略列在一個INSERT語句似乎並不工作盡管會議需求

fuselessmatt
貢獻者

我們想使用插入命令與特定的列中指定官方文檔。這是唯一的要求

:white_heavy_check_mark:️磚SQL倉庫版本2022.35或更高版本

:white_heavy_check_mark:️磚運行時11.2及以上

和行為應該如下

如果該命令省略了一個專欄,磚SQL分配相應的默認值。

如果目標表模式沒有定義任何默認值插入列,磚SQL分配NULL如果列可以為空。否則,磚SQL提出了一個錯誤。

我們使用SQL倉庫2023.15(> 2022.35),我猜我們的磚運行時是12.2。因此我們的解釋的文檔來看,答案是肯定的,但它不是。為什麼它不工作?曆史上它不支持Delta-tables,但根據文檔,這應該不是一個問題

如果不存在prod_gold.forecaster創建表。測試(col_1字符串,col_2字符串);插入prod_gold.forecaster。測試(col_1)值(“測試”)

3回複3

NandiniN
重視貢獻二世
重視貢獻二世

你好@Mattias P,

在上麵你的聲明中,create table命令應該包含默認值,

但是當我嚐試它,它沒有說違約是不允許的。

最初這是不支持與δ,但是當這個特性介紹了δ協議我們不得不在TBLPROPERTIES添加它。注意——這是隻有三角洲,其他協議沒有任何TBLPROPERTIES工作。醫生將被更新,以反映這一點。

創建表(表

col1字符串非空默認的“abc”

)

使用δ

TBLPROPERTIES (“delta.feature。allowColumnDefaults ' = '支持')

希望這個有幫助。

感謝和問候,

Nandini

謝謝你幫助我們。你確定嗎?文檔應該說似乎仍是可能的

“如果目標表模式沒有定義任何默認值插入列,磚SQL分配NULL如果列可以為空”

,一切都是空的,除非你顯式地設置不空嗎?

https://docs.m.eheci.com/sql/language-manual/sql-ref-syntax-ddl-create-table-using.html

我認為重要的是要清楚不同的數據庫係統處理這不同。例如在PostgreSQL

每一列沒有出現在顯式或隱式列列表將裝滿一個默認值,其宣稱默認值或零如果沒有。

MySQL它變成了隱式或顯式的默認值(非空)

如果嚴格SQL模式未啟用,任何列沒有明確給定一個值被設置為默認(顯式的或隱式的)價值。

Vidula_Khanna
主持人
主持人

嗨@Fusselmanwog

謝謝你發布你的問題在我們的社區!我們很高興幫助你。

幫助我們為您提供最準確的信息,請您花一些時間來回顧反應和選擇一個最好的回答了你的問題嗎?

這也將有助於其他社區成員可能也有類似的問題在未來。謝謝你的參與,讓我們知道如果你需要任何進一步的援助!

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

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

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

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

Baidu
map