MySQL安全管理外键约束
MySQL安全管理外键约束
MySQL安全管理之外键约束
1)外键
2)外键约束
3)外键管理
1、什么是外键
外键:foreign,表中指向外部表准建的字段定义成外键,外键必须要通过语法指定才能称之为外键
外键的基本语法:[constraint 外键名] foreign key(当前表字段名) references 外部表(主键字段)
外键构成条件
外键字段必须与对应表的主键字段类型一致
外键字段本身要求是一个索引(创建外键会自动生产一个索引)
外键名可以不指定,系统会自动生成
2、外键约束
外键约束:当表建立外键关系后,外键就会对主表(外键指向的表)和子表(外键所在的表)里的数据产生约束效果
外键的约束的是写操作
新增:子表插入的数据对应的外键必须在主表存在
修改:主表的记录如果在子表存在,那么主表的主键不能修改(主键不能修改)
删除:主表的记录如果在子表存在,那么主表的主键不能删除
外键约束控制:外键可以在定义时控制外键的约束作用
外键控制类型
on update:父表更新时子表的表现
on delete:父表删除时子表的表现
外键控制方式
cascade:级联操作,父表操作后子表跟随操作
set null:置空操作,父表操作后,子表关联的外键字段置空
restrict:严格模式,不允许父表操作(默认的)
no action:子表不管
注意:外键约束对子表和父表都有约束
3、外键管理
外键管理:在表创建后期维护外键
新增外键语法
alter table 表名 add [constraint `外键名`] foreign key(外键字段) references 表名(主键) [on 外键约束]
删除外键语法
alter table 表名 drop foreign key 外键名