欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL外键约束

程序员文章站 2022-05-31 23:34:00
...

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;