跳到主要内容

断言

断言是什么?​

  • 定义: 断言是一条总为真的 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 §断言和触发器/§断言)