MYSQL ON DELETE CASCADE ON UPDATE CASCADE 外键的级联删除和级联更新

外键语法:

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

例子:

主表1:用户user

create table user
(
uid int,
uname varchar(20),
primary key(uid)
)

主表2:商铺merchant

create table merchant
(
mid int,
mname varchar(255),
primary key(mid)
)

子表:用户对商铺的评价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
)

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

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

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

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

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

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值