約束
Delta表支持標準SQL約束管理條款,以確保將數據的質量和完整性自動驗證到表中。當違反約束時,三角洲湖拋出了不變性violationException
表示無法添加新數據。
重要的
添加約束會自動升級表Writer協議版本。看表協議版本了解表協議版本及其升級協議版本的含義。
支持兩種類型的約束:
不是無效的
:指示特定列中的值不能為null。查看
:指示每個輸入行必須屬於指定的布爾表達式。
不是無效的
約束
筆記
降低不是無效的
可在Databricks運行時7.0及更高版本中使用。放不是無效的
可在Databricks運行時7.4及更高版本中使用。添加之前
不是無效的
約束對表,Databricks驗證了所有現有行都滿足約束的所有行。
您指定不是無效的
創建表並丟棄時,模式中的約束不是無效的
使用改變桌子改變柱子
命令。
>創造桌子默認。人民10m((IDint不是無效的,,,,名細繩,,,,中間名字細繩不是無效的,,,,姓細繩,,,,性別細繩,,,,出生日期時間戳,,,,SSN細繩,,,,薪水int)使用三角洲;>改變桌子默認。人民10m改變柱子中間名字降低不是無效的;
你可以加不是無效的
約束對現有的三角洲表使用改變桌子改變柱子放不是無效的
命令。
創造桌子事件((ID長,,,,日期細繩,,,,地點細繩,,,,描述細繩)使用三角洲;改變桌子事件改變柱子ID放不是無效的;
如果指定不是無效的
對嵌套在結構內的列的約束,父結構也被限製為不為空。但是,嵌套在數組或地圖類型中的列不接受不是無效的
約束。
有關參考信息,請參閱使用表和Alter表Arter列。
查看
約束
筆記
在Databricks運行時7.4及以上可用。
在Databricks運行時7.3 LTS中,您可以將其寫入表格
查看
定義的約束,但您無法創建查看
約束。
你管理查看
使用改變桌子添加約束
和改變桌子降低約束
命令。改變桌子添加約束
驗證在將約束添加到表中之前,所有現有行都滿足約束。
>創造桌子默認。人民10m((IDint,,,,名細繩,,,,中間名字細繩,,,,姓細繩,,,,性別細繩,,,,出生日期時間戳,,,,SSN細繩,,,,薪水int)使用三角洲;>改變桌子默認。人民10m添加約束datewithinrange查看((出生日期>'1900-01-01');>改變桌子默認。人民10m降低約束datewithinrange;
有關參考信息,請參閱Alter表添加約束和Alter Table Drop約束。
查看
約束是輸出中的表屬性描述細節
和節目tblproperties
命令。
>改變桌子默認。人民10m添加約束有效查看((ID>1和ID<9999999);>描述細節默認。人民10m;>節目tblproperties默認。人民10m;