MySQ外键
外键
1、概述
MySQL3.2版本以后 innodb支持外键约束
外键的作用:可以使俩张表进行关联 保持数据的一致性和实现级联操作
注意:外键类型必须是同一类型 int tinyint 但是 和varchar就不可以
2、创建表
-
创建A表
mysql> create table a( -> id int unsigned primary key auto_increment, -> name varchar(10) default 'lucky' -> );
-
创建表B references[ˈrefrənsɪz]
mysql> create table b( -> id int unsigned primary key auto_increment, -> a_id int unsigned, -> name varchar(10) default '', -> key a_id(a_id), -> constraint b_f_k foreign key (a_id) references a(id) -> );
外键名称b_f_k 当前B表中的a_id 关联a表中的自增id
3、插入数据
-
A表插入数据
insert into a values(null,'lucky');
-
B表插入数据
insert into b values(null,1,'b');
4、删除数据
-
删除B表数据
delete from b;
-
删除A表数据
delete from a;
-
注意
添加外键的表为辅表 另外一个表为主表
当删除B表 在删除A表中数据没有任何问题
删除以后再次使用原命令(上面的添加数据命令进行添加时) B表报错 原因外键关联不上
如果先删除A表 B表如果存在关联数据 则报错
5、删除外键 添加事件触发限制
-
查看创建表B
show create table B
-
删除外键
alter table b drop foreign key b_f_k;
-
添加外键
alter table b add foreign key (a_id) references a(id) on delete cascade on update cascade;
6、删除表A中数据
delete from a;
本文来自博客园,作者:寻月隐君,转载请注明原文链接:https://www.cnblogs.com/QiaoPengjun/p/16013053.html