Database学习 - mysql 数据库 外键

时间:2023-03-08 17:33:35

外键

  外键约束子表的含义:如果在父表中赵达不到候选键,则不允许在子表上进行insert/update

  外键预约对父表的含义:在父表上进行update/delete以更新或删除子表中有一条或多条对应匹配的候选键时,父表的行为取决于,在定义子表的外键时指定的on update/ on delete 字句. 

创建外键

  建表时定义外键

foreign key (子表-字段) references 主表(字段)

注意:外键关联的主键的数据类型一定要保持一致

  

  添加外键

alter table 表名 add constraint 外键名  foreign key (子表-字段) references 主表(字段);

  删除外键

alter table 表名 drop foreign key 外键名;

四种外键删除方式:

  外键的级联同步删除配置:(cascade方式)

  创建表方式:

foreign key (子表-字段) references 主表(字段) on delete cascade;

  添加表方式:

alter table 表名 add constraint 外键名  foreign key (子表-字段) references 主表(字段) on delete cascade;

  外键的级联删除同步为空配置:(set null方式)

  创建表方式:

foreign key (子表-字段) references 主表(字段) on delete set null;
 

  添加表方式:

alter table 表名 add constraint 外键名  foreign key (子表-字段) references 主表(字段) on delete set null;

外键的级联操作配置:(restrict方式):

拒绝对父表进行删除更新操作

外键的级联操作配置:(no action方式):

在mysql中restrict,如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作.