楼主 lrlxxqxa |
结合实例来说明在数据库中建表时发生参照完整性错误的原因,以及解决的办法: 数据库中建立如下2表: 公司表:ID,公司类别,公司名称(主键),法人代表,联系人,电话,传真,地址,性质,注册资本,经营项目及报价(附件),公司业绩,考察评价。 合同表:ID,合同编号(主键),合同名称,合同内容(附件),工程地点,合同价款,付款方式,乙方公司名称,乙方签约代表,联系方式。 建立关系的时候,以公司表的公司名称去对应合同表的乙方公司名称,是1对多的关系,弹出如下错误提示: 出错原因: 参照完整性则是相关联的两个表之间的约束,就是从表中每条记录外键的值必须是主表中存在的。本实例中合同表中有公司名称在主表(公司表)中没有对应记录。两表的数据关联不完整,所以报错。 解决办法: 1、删除合同表中所有数据,再建立关系; 2、补录或修正合同表中的单位名称,确保其在公司表中该名称存在。 |
2楼 lrlxxqxa |
补充一下相关概念: 参照完整性:当更新、删除、插入一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确。简单的说就是表间主键外键的关系。 参照完整性属于表间规则。对于永久关系的相关表,在更新、插入或删除记录时,如果只改其一不改其二,就会影响数据的完整性:例如修改父表中关键字值后,子表关键字值未做相应改变;删除父表的某记录后,子表的相应记录未删除,致使这些记录称为孤立记录;对于子表插入的记录,父表中没有相应关键字值的记录;等等。对于这些设计表间数据的完整性,统称为参照完整性。 |