外键语法:
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,通过选中外键来改变约束