一个关系表中的外键必为另一表的主键

如题所述

一个关系表中的外键必为另一表的主键这句话是错误的。

不一定是主键,但必须是唯一性索引。主键约束和唯一性约束都是唯一性索引。外键是表间关系的参照,可以不是主键。只是表明两个表之间的关系是通过那个属性连接起来的。

要保证外键是唯一性的就可以了,外键可以作为主键也可以不作为主键,第二个问题就没有必要讨论了,第三个问题:你现在既然已经加了外键约束,应该先插入班级表的信息,如果先插入学生信息找不到对应的班级外键的约束,插入就会失败。

外键的作用:

保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,外键只能引用外表中的列的值或使用空值。学号在成绩表(表2)中是主键,在学生表(表1)中是外键。

如果不使用外键,表1的学号字段插了一个值(比如20140999999),但是这个值在表2中并没有,这个时候,数据库允许插入,并不会对插入的数据做关系检查。然而在设置外键的情况下,插入表1学号字段的值必须要求在表1的学号字段能找到。

温馨提示:答案为网友推荐,仅供参考
相似回答