約束磚
磚支持標準的SQL約束管理的條款。約束分為兩類:
執行的質量和完整性約束確保數據添加到表自動驗證。
信息主鍵和外鍵約束編碼表字段之間的關係,不執行。
所有約束磚需要三角洲湖。
三角洲生活表也有類似的概念,即預期。看到管理數據質量與達美住表。
強製約束磚
當違反條件,事務失敗的錯誤。支持兩種類型的約束:
不零
:表明特定列中的值不能為空。檢查
:表明指定的布爾表達式必須對每個輸入行。
重要的
添加一個約束表作家協議版本自動升級版本低於3如果前麵的作家。看到磚三角洲湖管理功能的兼容性如何?理解表協議版本和升級協議版本意味著什麼。
設置一個不零
約束在磚
請注意
集不零
有磚運行時7.4及以上。
你指定不零
當你創建一個表約束模式。你可以刪除或添加不零
限製使用改變表改變列
命令。
創建表people10m(idINT不零,firstName字符串,middleName字符串不零,姓字符串,性別字符串,生日時間戳,ssn字符串,工資INT)使用δ;改變表people10m改變列middleName下降不零;改變表people10m改變列ssn集不零;
之前添加一個不零
約束一個表,滿足約束磚確認所有現有的行。
如果你指定一個不零
約束列嵌套在一個結構體,父結構也必須非空。列嵌套數組或地圖類型不接受不零
約束。
設置一個檢查
約束在磚
請注意
在磚運行時7.4及以上。
在磚運行時7.3 LTS表你可以寫
檢查
約束定義但你不能創建檢查
約束。
你管理檢查
限製使用改變表添加約束
和改變表下降約束
命令。改變表添加約束
驗證所有現有行滿足約束添加到表之前。
創建表people10m(idINT,firstName字符串,middleName字符串,姓字符串,性別字符串,生日時間戳,ssn字符串,工資INT)使用δ;改變表people10m添加約束dateWithinRange檢查(生日>“1900-01-01”);改變表people10m下降約束dateWithinRange;
看到ALTER TABLE添加約束和ALTER TABLE下降約束。
檢查
約束是公開為表屬性的輸出描述細節
和顯示TBLPROPERTIES
命令。
改變表people10m添加約束validIds檢查(id>1和id<99999999);描述細節people10m;顯示TBLPROPERTIESpeople10m;
申報的主鍵和外鍵關係
預覽
這個特性是在公共預覽。
請注意
主鍵和外鍵約束磚運行時的11.1及以上。
主鍵和外鍵約束要求統一目錄和三角洲湖。
您可以使用主鍵和外鍵關係統一編目表的字段。主鍵和外鍵信息,不執行。外鍵必須引用另一個表中的主鍵。
可以聲明主鍵和外鍵的表在表創建規範條款。這一條款是不允許在cta語句。你也可以添加到現有表的約束。
創建表T(pk1整數不零,pk2整數不零,約束t_pk主關鍵(pk1,pk2));創建表年代(pk整數不零主關鍵,fk1、整數,fk2整數,約束s_t_fk外國關鍵(fk1、,fk2)引用T);
你可以查詢information_schema
或使用描述
讓細節如何約束在一個給定的應用目錄。
看到的: