知识盲点:存在外键的的表,在插入数据时应该如何操作?

Posted lncyc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识盲点:存在外键的的表,在插入数据时应该如何操作?相关的知识,希望对你有一定的参考价值。

今天学习SQL,涉及到了有外键的表新增数据的问题,心里有一个疑问:有外键的表,可以直接插入数据吗?

答案是否定的,有外键,必须先在主表中添加数据,然后再添加附表数据,否则会提示约束错误。

自己把教材上的案例照着手敲一遍,加深印象。

 

以下是搜集网络上的解释,更加清晰明了。

 

 

有外键的情况应该先添加主表数据,再添加副表数据。
如:有以下两张表

班级表:

1
2
3
4
CLASSID  NAME
1        一班
 
2        二班

学生表:

1
2
3
4
5
6
7
SID     NAME    CLASSID
 
1       张三        1
 
2       李四        1
 
3       王五        2

  

其中学生表中的CLASSID是班级表CLASSID的外键。
现在要求在学生表中添加一条SID=4,NAME=赵六,CLASSID=3的数据,那么只能先在班级表中加入一条新数据。
insert into 班级表 values (3,‘三班‘);
然后再在学生表中添加:
insert into 学生表 values (4,‘赵六‘,3);

 

另外的方法

1、先主表插入数据,再表插入数据集
2、先禁用外键约束
ALTER TABLE 表名 NOCHECK CONSTRAINT 外键约束名
插入数据
再启用约束
ALTER TABLE 表名 CHECK CONSTRAINT 外键约束名

 

主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。
外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

以上是关于知识盲点:存在外键的的表,在插入数据时应该如何操作?的主要内容,如果未能解决你的问题,请参考以下文章

mysql基础知识

mysql中添加外键问题,求高手

主键和外键的作用

主键和外键的作用

mysql外键约束怎么写

Mysql-外键foreign key