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 2020-04-03 14:48  墨语i  阅读(472)  评论(0)    收藏  举报