概述
在SQL中可以使用數據定義語言中的CREATE ASSERTION
語句,通過聲明性斷言(declarative assertions)來制定更具一般性的約束。
斷言創建后,任何對斷言中所涉及關系的操作都會觸發關系數據庫管理系統對斷言的檢查
⚠️任何使斷言不為真值的操作都會被拒絕執行
創建斷言的語句
CREATE ASSERTION <斷言句> <CHECK 子句>
每個斷言都被賦予一個名字,<CHECK子句>
中的約束條件與WHERE
子句的條件表達式類似
Eg: 限制數據庫課程最多60名學生選修
CREATE ASSERTION <表名>
CHECK (60 >= SELECT count(*) FROM Course, SC)
刪除斷言的語句
DROP ASSERTION <斷言句>
⚠️如果斷言很復雜,則系統在檢測和維護斷言上的開銷較高