添加約束子句(Databricks SQL)
預覽
此功能已在公共預覽.
向現有Delta Lake表添加主鍵、外鍵或檢查約束。
語法
添加[check_constraint|key_constraint]check_constraint約束的名字檢查(條件)[執行]key_constraint{[約束的名字]{主要的關鍵(key_column(,…])[constraint_option][…]|{外國關鍵(foreign_key_column(,…])參考文獻parent_table[(parent_column(,…]])[constraint_option|foreign_key_option][…]}}constraint_option{不執行|可延期的|最初遞延|諾爾}foreign_key_option{匹配完整的|在更新沒有行動|在刪除沒有行動}
為了兼容非標準SQL方言,可以指定啟用已經
而不是不執行可延期的最初遞延
.
參數
check_constraint
為Delta Lake表定義檢查約束。
key_constraint
預覽
此功能已在公共預覽.
為Delta Lake表定義主鍵或外鍵約束。
約束
的名字可選地指定約束的名稱。該名稱在模式中必須唯一。如果沒有提供名稱,Databricks SQL將生成一個名稱。
主要的關鍵(key_column(,…])constraint_option
向Delta Lake表添加主鍵約束。一個表最多隻能有一個主鍵。
類中的表不支持主鍵約束
hive_metastore
目錄。主題表的列,定義為
不零
.列名不能重複。外國關鍵(foreign_key_column(,…])參考文獻parent_table[(parent_column(,…])]foreign_key_option
向Delta Lake表添加外鍵(引用完整性)約束。
類中的表不支持外鍵約束
hive_metastore
目錄。主題表的一列。列名不能重複。每列的數據類型必須與匹配的類型相匹配
parent_column
.的列數必須與的列數匹配parent_columns
.兩個外鍵不能共享相同的外鍵列集。指定外鍵引用的表。表必須有一個已定義的
主要的關鍵
約束,你必須擁有這個表。父表中的列,是其主鍵的一部分。必須列出父表的所有主鍵列。
類中給定的順序指定父列
主要的關鍵
定義。
隻在外鍵列排列上不同的外鍵約束是不允許的。
constraint_option
列出約束的屬性。所有屬性都是可選的,但默認情況下是隱含的。每個屬性最多隻能指定一次。
不執行
Databricks SQL不會對現有或新行執行強製操作。
可延期的
約束執行可以延遲。
最初遞延
約束強製被推遲。
諾爾
Databricks SQL不利用約束重寫查詢。
foreign_key_option
列出特定於外鍵約束的屬性。所有屬性都是可選的,但默認情況下是隱含的。每個屬性最多隻能指定一次。
匹配完整的
要認為約束為真,所有列值必須為真
不零
.在更新沒有行動
如果父節點
主要的關鍵
Databricks SQL不采取任何限製更新或更新外鍵的操作。在刪除沒有行動
如果父行被刪除,Databricks SQL不采取任何操作限製該操作、更新外鍵或刪除依賴行。
重要的
在添加主鍵或外鍵之前,請確認鍵約束。您的攝取過程可以提供這樣的保證,或者您可以對您的數據進行檢查。