1、概念
外键:从表中的公共字段称之为外键
好处:保证数据库数据的完整性,不会存在数据丢失的情况
缺点:对性能有影响,在海量的数据库中使用外键,如果一个程序每天要insert数百万条记录,当存在外键约束的时候,每次要去扫描此记录是否合格,一般还不止一个字段有外键,这样扫描的数量是成级数的增长!
注意:存储引擎必须是innodb(公共字段名称可以不一样,但是数据类型必须一样)
2、特性
-> 主表没有的数据从表就不能插入
-> 从表有的数据主表不能删除(先删从表,再删主表)
3、语法
创建表:foreign key(外键) references 主表(公共字段)
修改表:
alter database 数据名 charset=编码
alter view 视图名 as 新SQL语句
alter table 从表名 add foreign key(外键) references 主表(公共字段)
删除外键:alter table 从表名 drop foreign key 外键名
4、示例
create table users (
id int primary key auto_increment,
name varchar(20) not null
)engine=innodb charset=utf8;
create table orders(
id int primary key auto_increment,
users_id int,
foreign key (users_id) references users(id)
)engine=innodb charset=utf8;
网友评论