1.断言的概念:是一种命名约束,它表达了数据库状态必须满足的逻辑条件
2.通常情况下,断言被用来表达数据库约束,这些约束不能活很难用其他方法表达
3.SQL创建断言的语句具有如下形式:
CREATE ASSERTION<断言名>
CHECK(<条件>)[约束性质]
举例如下:约束任何部门经理的工资不超过其所在部门平均工资的10倍
关系模式如下:Employee(Eno,Ename,Salary,Dno)
Departments(Dno,Dptname,Mrgno)
语句如下:CREATE ASSERTION SalaryConstraint CHECK(
NOT EXISTS
(SELECT *
FROM Departments D,Employee E
WHERE D,Mrgno = E.Eno AND Salary > 10 * (SELECT AVG(Salary)
FROM Employee WHERE Dno = D.Dno
)
)
);注:如果断言游侠,则以后只有不违反数据库更新才被允许。
4.删除断言DROP ASSERTION<断言名>