美文网首页
MySQL外键约束

MySQL外键约束

作者: 老衲灬 | 来源:发表于2018-09-19 20:09 被阅读3次

    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;
    

    相关文章

      网友评论

          本文标题:MySQL外键约束

          本文链接:https://www.haomeiwen.com/subject/sfkwnftx.html