深圳市金黑网络技术有限公司始终坚持以用户需求为导向,提供安全、稳定、高效的产品和服务!
签到 · 搜索导航 · 服务热线 · 微信/手机:17817817816

深圳网站建设

查看: 479|回复: 0

mysql数据库教程三种外键操作

[复制链接]

UID
1
贡献
844
金币
1540
主题
520
在线时间
333 小时
注册时间
2022-1-15
最后登录
2024-11-12
QQ
发表于 2022-11-27 19:54:33 | 479 | 0 | 显示全部楼层 |阅读模式
mysql数据库教程三种外键操作

1、  严格限制(参见主表和从表)
2、  置空操作(set null):如果主表记录删除,或关联字段更新,则从表外键字段被设置为null。
3、  级联操作(cascade):如果主表记录删除,则从表记录也被删除。主表更新,从表外键字段也更新。
语法:foreign key (外键字段) references 主表名 (关联字段) [主表记录删除时的动作] [主表记录更新时的动作]。
一般说删除时置空,更新时级联。
  1. drop table if exists stuinfo;
  2. create table stuinfo(
  3.        id tinyint primary key comment '学号,主键',
  4.        name varchar(20) comment '姓名'
  5. )engine=innodb;

  6. drop table if exists stuscore;
  7. create table stuscore(
  8.        id int auto_increment primary key comment '主键',
  9.        sid tinyint comment '学号,外键',
  10.        score tinyint unsigned comment '成绩',
  11.        foreign key(sid) references stuinfo(id) on delete set null on update cascade
  12. )engine=innodb;
复制代码
小结:
置空、级联操作中外键不能是从表的主键

楼主热帖

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

快速回复 返回顶部 返回列表