想问一下外键的主要主途是什么,在什么时候会用到?

时间:2022-10-16 16:00:31
感觉用外键很麻烦,当要删除主表数据时,还提示有外键关联无法删除。真不知什么时候用它最合适。各位能不能介绍一下经验。

10 个解决方案

#1


参照完整性

#2


外键是用于建立和加强两个表数据之间的链接的一列或多列,通过它可以强制参照完整性

#3


当有几个表有联系,要通过外键来连接起来。
比如一张学生信息表(学号,姓名),
    成绩表(学号,课程号,成绩),
  课程信息表(课程号,课程名,授课老师)。

这样的三张表,学生表通过学号和成绩表联系起来,成绩表通过课程号和课程信息表连接起来。

#4


参照完整性

比如上面删掉学生信息表的一条记录,那么在成绩表里相应的学号的记录便跟着删除;
比如在课程表里,删除某课程,那么成绩表里关于该成绩的信息都删除。

要做到这些联系,必须设置相关联的外键

#5


如何用SQL语名创建这三张表,主要是外键的设置?
学生信息表(学号,姓名),
成绩表(学号,课程号,成绩),
课程信息表(课程号,课程名,授课老师)

#6


参照完整性,级联操作

#7


以前我一直使用外键来进行表之间的关联,现在我在存储过程中来判断。

#8


alter table 学生信息表 add constraint c_name1 foreign key(学号) 
references 成绩表(学号)

alter table 成绩表 add constraint c_name2 foreign key(课程号) 
references 课程信息表(课程号)

#9


成绩表的学号为学生信息表学号的外键, 
成绩表的课程号为课程信息表中课程号的外键.

#10


主外健可以用做级联删除或级联更新

在主键发生变化后外键会相应变化

#1


参照完整性

#2


外键是用于建立和加强两个表数据之间的链接的一列或多列,通过它可以强制参照完整性

#3


当有几个表有联系,要通过外键来连接起来。
比如一张学生信息表(学号,姓名),
    成绩表(学号,课程号,成绩),
  课程信息表(课程号,课程名,授课老师)。

这样的三张表,学生表通过学号和成绩表联系起来,成绩表通过课程号和课程信息表连接起来。

#4


参照完整性

比如上面删掉学生信息表的一条记录,那么在成绩表里相应的学号的记录便跟着删除;
比如在课程表里,删除某课程,那么成绩表里关于该成绩的信息都删除。

要做到这些联系,必须设置相关联的外键

#5


如何用SQL语名创建这三张表,主要是外键的设置?
学生信息表(学号,姓名),
成绩表(学号,课程号,成绩),
课程信息表(课程号,课程名,授课老师)

#6


参照完整性,级联操作

#7


以前我一直使用外键来进行表之间的关联,现在我在存储过程中来判断。

#8


alter table 学生信息表 add constraint c_name1 foreign key(学号) 
references 成绩表(学号)

alter table 成绩表 add constraint c_name2 foreign key(课程号) 
references 课程信息表(课程号)

#9


成绩表的学号为学生信息表学号的外键, 
成绩表的课程号为课程信息表中课程号的外键.

#10


主外健可以用做级联删除或级联更新

在主键发生变化后外键会相应变化