数据库主键和外键
发布网友
发布时间:2024-08-19 04:13
我来回答
共1个回答
热心网友
时间:2024-08-28 05:31
主键与外键之间存在什么差异?
主键(主码)的作用是唯一地标识一个元组,它不能有重复值,也不能是空值。在一个表中,只能设置一个主键。
外键(外码)则是用来与其他表建立联系的工具,它实际上是另一表的主键。外键可以存在重复值,也可以是空值。在一个表中,可以设置多个外键。
为何不建议使用外键与级联更新?
根据阿里巴巴开发手册的规定:【强制】不得使用外键与级联更新,所有外键概念必须在应用层进行处理。以学生和成绩的关系为例,学生表中的 student_id 是主键,成绩表中的 student_id 则为外键。如果更新学生表中的 student_id,同时触发成绩表中的 student_id 更新,即为级联更新。外键与级联更新在单机低并发环境下适用,但在分布式、高并发集群中不适用;级联更新是强阻塞操作,存在数据库更新风暴的风险;外键会影响到数据库的插入速度。