MySQL外键和参照完整性的实现步骤.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MySQL外键和参照完整性的实现步骤

MySQL外键和参照完整性的实现步骤 ?2010-05-14 09:03 ?佚名 ?互联网 ?我要评论(0) 摘要:以下的文章主要讲述的是MySQL外键和参照完整性,以及实现MySQL外键的实际操作步骤的介绍,希望会给你带来一些帮助在此方面。 标签:MySQL外键 Oracle帮您准确洞察各个物流环节 我们大家都知道MySQL参照完整性一般是通过MySQL外键(foreign key)的具体使用而随之应用。总的来说,流行工具开源 RDBMS MySQL(与PHP搭配之最佳组合)并不支持外键,原因是这种支持将会降低RDBMS的速度和性能。 然而,由于很多用户对参照完整性的优点倍感兴趣,最近MySQL(和PHP搭配之最佳组合)的不同版本都通过新InnoDB列表引擎支持外键。由此,在数据库组成的列表中保持参照完整性将变得非常简单。 为了建立两个MySQL(和PHP搭配之最佳组合)表之间的一个MySQL外键关系,必须满足以下三种情况: 两个表必须是InnoDB表类型。 使用在外键关系的域必须为索引型(Index)。 使用在MySQL外键关系的域必须与数据类型相似。 例子是理解以上要点的最好方法。如表A所示,建立两个表,其中一个列出动物种类及相应的代码(表名为:species),另一表列出动物园中的动物(表名为:zoo)。现在,我们想通过species关联这两个表,所以我们只需要接受和保存zoo表中包含species表中的合法动物的入口到数据库中。 表A MySQL(和PHP搭配之最佳组合) CREATE TABLE species (id TINYINT NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, Prima(最完善的虚拟主机管理系统)RY KEY(id)) ENGINE=INNODB; Query?OK,?0?rows?affected?(0.11?sec)? ? MySQL(和PHP搭配之最佳组合)?INSERT?INTO?species?VALUES?(1,?orangutan),?(2,?elephant),?(3,?hippopotamus),?(4,?yak);? ? Query?OK,?4?rows?affected?(0.06?sec)? ? Records:?4?Duplicates:?0?Warnings:?0? ? MySQL(和PHP搭配之最佳组合) CREATE TABLE zoo (id INT(4) NOT NULL, name VARCHAR(50) NOT NULL, FK_species TINYINT(4) NOT NULL, INDEX (FK_species), FOREIGN KEY (FK_species) REFERENCES species (id), Prima(最完善的虚拟主机管理系统)RY KEY(id)) ENGINE=INNODB; 注意:对于非InnoDB表, FOREIGN KEY 语句将被忽略。 现在,fieldszoo.species与species.id 之间存在一个MySQL外键关系。只有相应的zoo.specie与species.idfield的一个值相匹配,动物表中的入口才可被访问。以下的输出即演示了当你想输入一个Harry Hippopotamus记录,而使用到不合法的species代码: MySQL(和PHP搭配之最佳组合)?INSERT?INTO?zoo?VALUES?(1,?Harry,?5);? ? ERROR?1216?(23000):?Cannot?add?or?update?a?child?row:?a?foreign?key?constraint?fails? ? 这里,MySQL(和PHP搭配之最佳组合)核查species表以查看species代码是否存在,如果发现不存在,就拒绝该记录。当你输入正确代码的,可以与以上做比较。 MySQL(和PHP搭配之最佳组合)?INSERT?INTO?zoo?VALUES?(1,?Harry,?3);? ? Query?OK,?1?row?affected?(0.06?sec)? ? 这里,MySQL(和PHP搭配之最佳组合)核查species表以查看species代码是否存在,当发现存在,允许记录保存在zoo表中。 为了删除一个MySQL外键关系,首先使用SHOW CREATE TABLE找出InnoDB的内部标签,如表B所示: 表 B +-------+---------------------------------------------------+? ? |?Table?|?Create?Table?|? ? +-------+

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档