添加約束條款
預覽
這個特性是在公共預覽。
適用於:磚的SQL磚運行時
增加了一個信息主鍵,信息外鍵,或者強製執行現有的三角洲湖表檢查約束。
語法
添加(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
定義了一個三角洲湖表檢查約束。
key_constraint
預覽
這個特性是在公共預覽。
適用於:磚的SQL磚運行時11.1及以上
定義了一個信息主鍵或信息三角洲湖表的外鍵約束。
約束
的名字(可選)指定約束的名稱。內的名稱必須是唯一的模式。如果沒有提供名字磚將生成一個。
主關鍵(key_column(,…])constraint_option
添加一個主鍵約束到三角洲湖表。一個表最多隻能有一個主鍵。
主鍵約束的表不支持
hive_metastore
目錄。一列的表定義為主題
不零
。列名稱不能重複。外國關鍵(foreign_key_column(,…])引用parent_table((parent_column(,…])]foreign_key_option
添加一個外鍵約束(參照完整性)三角洲湖表。
不支持外鍵約束的表
hive_metastore
目錄。科目表的一列。列名稱不能重複。每一列的數據類型必須匹配的類型匹配
parent_column
。列數必須匹配的數量parent_columns
。兩個外鍵不能共享相同的外鍵列。指定表的外鍵是指。表必須有一個定義
主關鍵
約束的,你必須自己的那張桌子。列在父表中主鍵的一部分。所有的父表的主鍵列必須列出。
如果父母列沒有列出它們隱含指定的順序給出
主關鍵
定義。
外鍵約束,隻有不同的外鍵列的排列是不允許的。
constraint_option
列表的屬性約束。默認情況下所有屬性都是可選的,但暗示。每個屬性最多可以指定一次。
不執行
磚不采取任何行動執行現有或新行。
可延期的
約束可以延期執行。
最初遞延
約束執法是延遲的。
諾爾
磚不利用約束來重寫查詢。
foreign_key_option
列出了具體的外鍵約束屬性。默認情況下所有屬性都是可選的,但暗示。每個屬性最多可以指定一次。
匹配完整的
約束的所有列值必須被認為是如此
不零
。在更新沒有行動
如果父
主關鍵
更新數據磚不采取任何行動限製更新或更新的外鍵。在刪除沒有行動
如果父行被刪除數據磚不采取任何行動限製行動,更新外鍵或刪除相關的行。
重要的
磚不執行主鍵或外鍵約束。確認鍵約束之前添加一個主鍵或外鍵。攝取過程可以提供這樣的保證,或者您可以對您的數據運行檢查。