添加外键方法一
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