外键(foreign key)
-
定义
让当前表字段的值在另一个表的范围内选择
-
语法
foreign key(参考字段名) references 主表(被参考字段名) on delete 级联动作 on update 级联动作
-
使用规则
1、主表、从表字段数据类型要一致
2、主表被参考字段 :KEY的一种,一般为主键
- 示例
表1、缴费信息表(财务)
id 姓名 班级 缴费金额
1 唐伯虎 AID19 300
2 点秋香 AID19 300
3 祝枝山 AID19 300
create table master(
-> id int primary key,
-> name varchar(20),
-> class char(5),
-> money decimal(6,2)
-> )charset=utf8;
表2、学生信息表(班主任) – 做外键关联
stu_id 姓名 缴费金额
1 唐伯虎 300
2 点秋香 300
create table slave(
-> stu_id int,
-> name varchar(20),
-> money decimal(6,2),
-> foreign key(stu_id) references master(id) on delete cascade on update cascade)
-> charset=utf8;
- 删除外键**
alter table 表名 drop foreign key 外键名;
外键名 :show create table 表名;
- 级联动作
cascade
数据级联删除、更新(参考字段)
create table slave(
-> stu_id int,
-> name varchar(20),
-> money decimal(6,2),
-> foreign key(stu_id) references master(id) on delete cascade on update cascade)
-> charset=utf8;
restrict(默认)
从表有相关联记录,不允许主表操作
create table slave_2 (stu_id int,
-> name varchar(20),
-> money decimal(6,2),
-> foreign key(stu_id) references master(id) on delete restrict on update restrict)
-> c