数据库学习笔记「断言」
概述
在SQL中可以使用数据定义语言中的CREATE ASSERTION
语句,通过声明性断言(declarative assertions)来制定更具一般性的约束。
断言创建后,任何对断言中所涉及关系的操作都会触发关系数据库管理系统对断言的检查
⚠️任何使断言不为真值的操作都会被拒绝执行
创建断言的语句
CREATE ASSERTION <断言句> <CHECK 子句>
每个断言都被赋予一个名字,<CHECK子句>
中的约束条件与WHERE
子句的条件表达式类似
Eg: 限制数据库课程最多60名学生选修
CREATE ASSERTION <表名>
CHECK (60 >= SELECT count(*) FROM Course, SC)
删除断言的语句
DROP ASSERTION <断言句>
⚠️如果断言很复杂,则系统在检测和维护断言上的开销较高