• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL外键使用详解

MySQL外键使用详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql外键的使用,mysql中外键的使用,mysql外键,mysql外键约束,mysql外键设置等相关知识,希望本文的分享对您有所帮助

最近有开始做一个实验室管理系统,因为分了几个表进行存储·所以要维护表间的关联··研究了一下MySQL的外键。

(1)只有InnoDB类型的表才可以使用外键,mysql默认是MyISAM,这种类型不支持外键约束

(2)外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作;

(3)外键的作用:

保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值!

(4)建立外键的前提:

两个表必须是InnoDB表类型。
使用在外键关系的域必须为索引型(Index)。
使用在外键关系的域必须与数据类型相似

(5)创建的步骤

指定主键关键字: foreign key(列名)

引用外键关键字: references <外键表名>(外键列名)

(6)事件触发限制:on delete和on update , 可设参数cascade(跟随外键改动), restrict(限制外表中的外键改动),set Null(设空值),set Default(设默认值),[默认]no action

(7)举例

outTable表 主键 id 类型 int

创建含有外键的表:

create table temp(
id int,
name char(20),
foreign key(id) references outTable(id) on delete cascade on update cascade);
</div>

说明:把id列 设为外键 参照外表outTable的id列 当外键的值删除 本表中对应的列筛除 当外键的值改变 本表中对应的列值改变。

create table temp( id int, name char(20), foreign key(id) references outTable(id) on delete cascade on update cascade);
</div>

缺点:在对MySQL做优化的时候类似查询缓存,索引缓存之类的优化对InnoDB类型的表是不起作用的,还有在数据库整体架构中用得同步复制也是对InnoDB类型的表不生效的,像数据库中核心的表类似商品表请大家尽量不要是使用外键,如果同步肯定要同步商品库的,加上了外键也就没法通不了,优化也对它没作用,岂不得不偿失,做外键的目的在于保证数据完整性,请大家通过程序来实现这个目的而不是外键,切记!

以上所述就是本文的全部内容了,希望大家能够喜欢。

请您花一点时间将文章分享给您的朋友或者留下评论。我们将会由衷感谢您的支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MySQL外键使用详解

相关文章

  • 2017-05-11使用Memcache缓存mysql数据库操作的原理和缓存过程浅析
  • 2018-12-05mysqli多条sql语句查询
  • 2018-12-05mysql常用基础操作语法(六)--对数据排序和限制结果数量的条件查询【命令行模式】
  • 2017-05-11mysql自增ID起始值修改方法
  • 2018-12-05MySQL优化总结-查询总条数
  • 2018-12-05Microsoft SQL Server 安全问题
  • 2018-12-05MySQL之——如何防止人为误操作MySQL数据库
  • 2018-12-05sqlserver 修改列名及表名的sql语句
  • 2018-12-05MySQL show命令的用法
  • 2018-12-05SQL Server 索引介绍

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL之-CentOS下彻底卸载MySQL代码示例
    • mysql模糊查询like和regexp小结
    • MySQL数据库的还原与恢复以及导入操作
    • oracle 树查询 语句
    • SQL server 视图(view)介绍
    • MySQL 存储过程和"Cursor"的使用方法
    • mysql常用数据库查询
    • mysql中RAND()随便查询记录效率问题和解决办法分享
    • 使用SQL语句操作数据表的图文详解(phpMyAdmin的使用教程3)
    • mysql 模糊搜索的方法介绍

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有