[23000][1452] Cannot add or update a child row: a foreign key constraint fails,添加外键时报错,解决办法。

[23000][1452] Cannot add or update a child row: a foreign key constraint fails 
(`mybatis-example`.`#sql-1abc_101`, CONSTRAINT `fk_book_stuid` 
FOREIGN KEY (`stuid`) REFERENCES `t_stu` (`sid`))

[23000][1452] Cannot add or update a child row: a foreign key constraint fails 
(`mybatis-example`.`t_book`, CONSTRAINT `fk_book_stuid` 
FOREIGN KEY (`stuid`) REFERENCES `t_stu` (`sid`))

 1、导致以上报错的原因分析

[23000][1452] Cannot add or update a child row: a foreign key constraint fails,添加外键时报错,解决办法。_第1张图片

 2、解决办法(补上s003所对应t_stu数据的主键sid的数据)

[23000][1452] Cannot add or update a child row: a foreign key constraint fails,添加外键时报错,解决办法。_第2张图片

2、外键(foreign key)

  1. 外键的存在主要是为了维护数据的 一致性完整性
  2. 外键是用来控制数据库中数据的完整性,它允许对一个表中的数据进行操作时,关联的其他表的数据也能同时发生改变。外键字段的值必须在被引用的表的主键字段中存在,除非该字段的值为NULL(如果允许的话)。这种约束防止了无效的数据引用,例如防止引用不存在的记录,从而确保了数据的完整性和准确性。
  3. 总的来说,外键的存在是为了保证数据库中数据的一致性和完整性,防止无效的数据引用

外键是关系型数据库中的一种约束,它用于维护不同表之间的关系。它确保了在一个表中引用另一个表中的数据时数据的一致性和完整性。

具体来说,外键可以实现以下功能:

  1. 数据完整性:外键可以确保一个表中的数据只引用另一个表中已存在的数据。这可以避免不一致的数据,确保数据的完整性和准确性。

  2. 数据关系的建立:通过外键关联两个表,可以建立起两个表之间的数据关系,使得数据可以更好地组织和管理。

  3. 数据操作的限制:外键可以限制某些数据的操作,例如如果一张表中某个字段是外键,那么删除该表中的数据时需要先删除引用该数据的表中相应的数据,否则将无法完成删除操作。

因此,外键是确保关系型数据库中数据的完整性和一致性的关键机制之一,它是数据库设计和管理的重要组成部分。

外键是一个字段或字段组,它指定了两个表之间的关系。具体来说,外键用于以下目的:  

  1. 建立关系:外键用于在两个表之间建立关系,以指示数据之间的关联性。它指定了一个表的主键或唯一键在另一个表中的对应关系。  
  2. 数据一致性:外键用于确保数据一致性,通过在外键列中设置约束条件,可以限制插入或更新操作,以确保引用的数据必须存在于另一个表中。
  3.  数据完整性:外键可以保证数据的完整性,确保只有有效的关联数据被保存到数据库中。这有助于避免无效数据的产生,提高数据质量。  
  4.  查询优化:外键可以用于查询优化,通过使用外键,数据库系统可以快速定位相关数据,提高查询性能。  
  5. 扩展应用:外键可以为应用程序提供更多的功能,例如实现事务处理、级联更新等。  

总之,外键是一种关系型数据库中的重要概念,用于建立表之间的关系,维护数据一致性、完整性和查询性能,并为应用程序提供更多的功能扩展。

你可能感兴趣的:(数据库,MyBatis,数据库,mysql,foreignkey,constraintfails,外键约束,altertable,references)