断言
断言是什么?
- 定义: 断言是一条总为真的 SQL 逻辑表达式;
- 行为: 任何导致断言失败 (结果为假) 的数据库更新都会被拒绝;
- 范围: 与 CHECK 不同, 断言可以跨关系、跨分组约束整个数据库状态;
怎样创建断言?
- 语法:
CREATE ASSERTION <断言名> CHECK (<条件>); - 要求: 条件必须是逻辑值;
- 效果: 每次更新后检查该条件;
CREATE ASSERTION SumLength CHECK (10000 >= ALL (
SELECT SUM(length)
FROM Movies
GROUP BY studioName
));
- 例子含义: 任何制片公司的影片总长度都不得超过 10000;
怎样删除断言?
- 语法:
DROP ASSERTION <断言名>;
DROP ASSERTION SumLength;
(source: 060-约束和触发器.md §断言和触发器/§断言)