数据库系统概论——断言
在SQL
中,使用CREATE ASSERTION
语句声明断言指定更具一般性的约束,可以定义涉及多个表或聚集操作比较复杂的完整性约束条件,断言创建后,任何对断言中所涉及的操作都会触发关系数据库管理系统对该断言的检查,任何使断言不为真的操作都会被拒绝执行
格式
设置断言
create assertion <assertion name> <check statement>
删除断言
drop assertion <assertion name>;
缺点
若断言很复杂,会导致系统检测和维护断言的开销较高
示例
设置断言building_capacity
,每个办公楼最多只能容纳两个系
create assertion building_capacity
check (2 >= all(
select count(*)
from department
group by buidling
));
删除名为building_capacity
drop assertion building_capacity;
鸣谢
最后
- 由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解