当前位置:   article > 正文

MYSQL ON DELETE CASCADE ON UPDATE CASCADE 外键的级联删除和级联更新_mysql中的delete和cascade

mysql中的delete和cascade

外键语法:

constraint 外键名 foreign key 外键字段 references 主表名(关联字段) [主表记录删除时的动作] [主表记录更新时的动作]
  • 1

例子:

主表1:用户user

create table user
(
uid int,
uname varchar(20),
primary key(uid)
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

主表2:商铺merchant

create table merchant
(
mid int,
mname varchar(255),
primary key(mid)
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

子表:用户对商铺的评价comment

create table comment
(
cid int,
einfo varchar(255),
uid int,
mid int,
primary key(cid),
foreign key (uid) references user(uid) on delete cascade on update cascade,
foreign key (mid) references merchant(mid) on delete cascade on update cascade
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

删除主表user或merchant中的某一条数据时,子表中对应的数据也会随之删除

有说法说必须设立索引才能使用外键约束,不设立也成功了,可能mysql会通过sql语句自动设立吧(咱也不清楚

如果表已经建好,可以用以下语句增加外键

alter table 子表名 add foreign key(外键字段) references 主表名(关联字段) on delete cascade on update cascade;
  • 1

如果外键已经添加,可以在MySQL workbench选中表名右键,选择alter table,通过选中外键来改变约束

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/497651
推荐阅读
相关标签
  

闽ICP备14008679号