1. 创建class表
create table class(id int primary key, name char(255));
插入数据:
id name
1 语文班
2 数学班
2. 创建学生表
create table student(id int primary key, name char(255) not null,age int(100), class_id int not null, foreign key(class_id) references class(id) on update cascade on delete cascade);
插入数据:
id name age class_id
1 张三 10岁 1
2 李四 10岁 2
3 王五 10岁 1
结论:
若是要创建外键,必须先创建班级表,才能创建关联外键的学生表;【现有主表class,从表student才能添加外键】
一旦创建外键,外键在主表中的字段默认为class_id;
若是用原生sql语句创建外键语法:
首先需要创建关联字段class_id,然后关联外键:foreign key(class_id) references class(id)
没有使用联级删除、联机更新时,一般需要先删除从表student中所有有关class中 class_id=1 的所有记录才能删除主表class中的对应 id = 1 的记录【可以百度有忽略外键强制删除主表class的方法】;
但是使用联级删除、联机更新后:
级联删除:当主表class的关联记录【student】被删除时,从表会自动删除与主表删除记录相关联的记录。【使用联级删除后,可以直接删除主表class的记录;没有联级删除时,必须先删除从表student中所有有关class中 class_id=1 的所有记录才能删除主表class中的对应 id = 1 的记录】
级联更新: 当主表class的记录(一般是主键值)发生更新时,从表student自动更新自己的外键值。【使用联级更新后,主表class字段发送更改时,从表student字段自动更新】
posted on
浙公网安备 33010602011771号