-
什么叫完整性约束?
答:
简单的说就是表间主键外键的关系。
参照完整性属于表间规则。对于永久关系的相关表,在更新、插入或删除记录时,如果只改其一不改其二,就会影响数据的完整性:例如修改父表中关键字值后,子表关键字值未做相应改变;删除父表的某记录后,子表的相应记录未删除,致使这些记录称为孤立记录;对于子表插入的记录,父表中没有相应关键字值的记录;等等。对于这些设计表间数据的完整性,统称为参照完整性。 -
DEFFERRABLE例子:
如果我想在UnitOfStudy的表中插入一条lecturer的数据,但是在Lecturer表中并没有这个数据。我先在UnitOfStudy中插入这个数据,再在Lecturer表中插入这个数据并不会报错,因为他是DEFFERED的。
-
Assertion
如果用断言来写,可以写成:
CREATE ASSERTION smallclub CHECK
( (SELECT COUNT(s.sid) FROM Sailors s)
+(SELECT COUNT(b.bid) FROM Boats b) < 100) );
CHECK smallclub;