mysql-外键策略

添加外键方法一

create table t_student(
  sno int(6) PRIMARY KEY auto_increment,
	sname VARCHAR(5) not null,
	classno int(4),
	CONSTRAINT  fk_stu_classno FOREIGN key (classno) references t_class (cno)
);

添加外键方法二

为t_student表添加t_class表的外键

alter table t_student add CONSTRAINT fk_stu_classno foreign key (classno) REFERENCES t_class(cno);

策略一

no action  不允许操作

先将子表的外键值通过sql语句置空,再删除主表的值(主表为班级编号,子表为学生表)

策略二

cascade 级联操作:操作主表的时候影响从表的外键信息;

alter  table  t_student  add  constraint   自定义的外键名  foreign  key  (外键值)  references  t_class  (主表的主键值)  on  update cascade  on delete  cascade;

策略三

置空操作

alter  table  t_student  add  constraint  自定义的外键名  foreign  key  (外键值)  references  t_class  (主表的主键值)  on  update set  null  on delete  set  null;

应用场景

1)朋友圈删除:点赞,留言都删除。--级联操作

2)解散班级:对应的学生,班级置空就可以了。--set  null

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值