【MySQL】主键和外键
2024-01-02 13:45:47
1 主键
- 主键:给定表里每条记录的唯一标识;
- 理想情况下,主键不能修改,它的值应该永远不变。
- 主键是非空的,必须有一个唯一标识。
- 主键可启用自动递增,便于插入数据,不会有重复主键标识;表的主键不能重复。
- 如student_id, course_id等。
2 外键
- 外键:一张表中引用了另外一张表主键的那列。如注册表中引用了学生表的主键student_id,引用了课程表的主键course_id,这两个就是注册表的外键。
- 复合主键:表中的两个外键的结合成为主键,唯一标识每次注册。如student_id和course_id的组合构成此表的主键。
3 外键约束
- 需要为表中的外键设置更新和删除的约束,保护数据不受损坏。通过外键约束决定当主键被更新或删除时,外键应该进行什么操作。
- 一般来说,更新的约束设置为级联。删除的约束需按情况设置。
- 外键约束面板:更新 / 删除。
- cascade:级联。如果主键更改或删除,会自动更新子表中的记录。
- restrict:限制。拒绝更新或删除。
- no action:无操作。和限制一样,防止或拒绝更新或删除操作。
- set null:设为空值。如果学生id改变,外键会被设置为空值。会导致注册表里的一条记录失去了父表,成为“孤儿记录”。“孤儿记录”是不良数据,多数情况下不选set null
文章来源:https://blog.csdn.net/xuwuuu/article/details/135261637
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!