mysql数据库教程 外键_MYSQL数据库MySQL外键使用详解

《MYSQL数据库MySQL外键使用详解》要点:

本文介绍了MYSQL数据库MySQL外键使用详解,希望对您有用。如果有疑问,可以联系我们。

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

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

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

(3)外键的作用:MYSQL教程

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

MYSQL教程

(4)建立外键的前提:MYSQL教程

两个表必须是InnoDB表类型.

使用在外键关系的域必须为索引型(Index).

使用在外键关系的域必须与数据类型相似

MYSQL教程

(5)创建的步骤MYSQL教程

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

引用外键关键字: references (外键列名)MYSQL教程

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

(7)举例MYSQL教程

outTable表 主键 id 类型 intMYSQL教程

创建含有外键的表:MYSQL教程

代码如下:

create table temp(

id int,

name char(20),

foreign key(id) references outTable(id) on delete cascade on update cascade);

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

代码如下:

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值