mysql中的mysql外键约束束如何使用

任何事物都有抛弃你的可能,唯独学习这件事只能被你抛弃~
MySQL中的外键是什么、有什么作用
最近自学数据库MySQL,然后有个疑问,一直不得其解,查询了相关资料,最后还是没有解决。
我的疑问是 "使用外键约束" ,然后我对 "外键" 这个词不是很理解,查询相关资料都是讲一些术语,说外键的主要作用是:保持数据的一致性、完整性。听得我是一头雾水。
关于外键,我有自己的一些理解,但是不晓得是否正确,举个例子来表达我的看法:假如现在需要建立一个表,一个什么样的表呢?一个班级的学生个人信息表:
所以在设计的时候,就给表1添加一个外键,这个外键就是表2中的学号字段,那么这样表1就是主表,表2就是子表。所以结合2张表就能保持数据的一致性、完整性(估计就是还原成原来的那张大表吧)。
借着这个例子再谈谈外键的一些事项:
1、表1可以有一个或者多个外键,也可以没有。(如果表1有多个外键可不可以是这样的情况,表2中的多个字段是表1的外键;或者说表1的多个外键是在多个表中)
2、这个外键可以不是表1的主键,但必须是子表的主键。(简单的说就是,如果一个字段是某个表的外键时,那么该字段必须是主键)
以上就是我个人对外键的理解。
-------------------------------------解--------答-------------------------------------
什么是外键
| ------& |
从表(sub)的某列引用(ref)主表(main)的某列的值。比如学生表有个学生编号(sid),分数表中的学生列(stu)引用学生表的学 生编号,此时对于分数表的 stu 来说,学生表的 sid 就是外键。从表也叫外键表,主表也叫主键表、外表,列也叫字段。
所以在设计的时候,就给表1添加一个外键,这个外键就是表2中的学号字段,那么这样表1就是主表,表2就是子表。
你的主从关系理解颠倒了。你的图中,表1的确是主表,表2是子表,但不是叫做给表1添加一个外键,而是给表2添加一个外键,表2中的学号 字段就叫外键,它是表1学号字段的主键。你可以这样说:表1的学号字段是表2的外键。
外键用来干什么
你贴的图片已经解释了。为了一张表记录的数据不要太过冗余。这和软件工程的模块化思想差不多类似,只不过在数据库中是对表关系进行解耦,尽量让表 记录的数据单一化。就如你贴的图片中,把成绩和学生信息放在一张表中就太冗余了,成绩完全可以以学生的id作为区分标识。
为什么说外键能保持数据的一致性、完整性
你想想,你的图中的第一章表分割成了表1和表2,表2的学号引用了表1的学号字段作为外键,如果不建立外键,只是和表1一样单纯性 地设立一个学号字段,那么和建立外键有什么区别呢?
比如表1中张三的学号为,那么我在表2中插数据的时候在学号字段插来记录张三的成绩不也是做到了表 的解耦了吗?
这里存在的问题是,在不设置外键的情况下,表2的学号字段和表1的学号字段是没有关联的。只是你自己认为他们有关系而已,数据库并 不认为它俩有关系。也就是说,你在表2的学号字段插了一个值(比如),但是这个值在表1中并没有,这个时候,数据库还是允 许你插入的,它并不会对插入的数据做关系检查。然而在设置外键的情况下,你插入表2学号字段的值必须要求在表1的学号字段能找到。
同时,如果你要删除表1的某个学号字段,必须保证表2中没有引用该字段值的列,否则就没法删除。这就是所谓的保持数据的一致性和完整性。你想,如 果表2还引用表1的某个学号,你却把表1中的这个学号删了,表2就不知道这个学号对应的学生是哪个学生。数据的一致性还包括数据类型的一致性(这 个见下面就知道了)。
外键的使用规范
从表的字段必须与外键类型相同(如上,分数表 stu 的类型必须和学生表 sid 的类型相同,比如都是 int(10) 类型)外键必须是主表的唯一键(如上,学生表 sid 是主键,而主键是唯一的,所以可以作为分数表 stu 的外键)有关联的字段(如上,分数表之所以使用学生表的 sid 是因为两者有关联,分数表记录的是学生的分数,而学生可以用 sid 来唯 一标识)避免使用复合键(也就是说从表可以同时引用多个外表的字段作为一个外键,一般不推荐这种做法)你的问题
如果表1有多个外键可不可以是这样的情况,表2中的多个字段是表1的外键;或者说表1的多个外键是在多个表中。
都可以。因为表1的外键不一定是表2的主键,也可以是唯一键(UNIQUE)。比如表2有个主键 A,有个唯一键 B,表1两个字段 A' 和 B’ 分别引用表2的 A 和 B,这就是多对多的关系了。再或者表2主键 A,表3主键 B,表1的两个字段 A' 和 B' 分别引用表2的 A 和表3 的 B。
这个外键可以不是表1的主键,但必须是子表的主键。(简单的说就是,如果一个字段是某个表的外键时,那么该字段必须是主键)
因为你前面就理解错了,所以这句话本身就是错的。对于从表来说,外键不一定需要作为从表的主键,外键也不一定是外表的主键,外表的唯一键就可以作 为从表的外键。
再给一张图以帮助理解
mysql 外键(foreign key)的使用,同一个table的两个外键对应一个table的主键
【精华版】mysql创建表(带外键)
什么是外键?为什么要使用外键?如何来用?不用会怎样?
MYSQL外键的使用以及优缺点
如何在MySQL中设置外键约束以及外键的作用
MySQL外键在数据库中的作用
关于数据库主键和外键(终于弄懂啦)
mysql 外键,主键,唯一性约束
mysql 外键简介
没有更多推荐了,博客访问:
博文数量: 797
博客积分: 11684
博客等级: 上将
技术积分: 9175
注册时间:
分类: Mysql/postgreSQL 22:33:19
在本文中,我们将向读者详细介绍如何在更新和删除父表数据的同时,触发有关子表数据的级联更新和删除操作。您将看到当使用InnoDB表的时候,借助于外键约束就可以轻松搞定这一过程。
  一、利用外键约束更新并删除MySQL中的数据
  我们知道,开发能够维护多个表的完整性的数据库的应用程序是一件非常复杂的事情——即使应用程序所面对的是当前最流行的开源关系型数据库管理系统MySQL时也不例外。如果一个应用程序必须处理多个数据库表,而这些表之间有存在着某些预定义的关系,这时一旦父表中的数据被更新或者删除,那么这些变化必须正确反映到子表中,否则就会引发许多问题。
  具体就MySQL来说,在大多数情况下类似这样的数据库完整性问题都可以通过使用程序库ORM加以解决,不过这并非解决问题的唯一出路。另一种解决方案是使用MySQL的InnoDB引擎的外键约束。 在使用这个引擎的时候,我们可以在父表执行诸如更新和删除等操作时,让子表执行指定的动作来进行响应。
  在前一篇文章中,我们演示了从父表中删除一篇博客的数据时,如何触发对存放该博客有关评论的表中相应数据的级联删除操作。
  下面我们还是以前面的示例来诠释如何在数据库层来维护有关的表的完整性,而不是将这项任务让推给处理数据层的应用程序。
  前面我们在介绍在MySQL的InnoDB表中应用外键约束的时候,都是单独触发级联更新或级联删除操作,实际上,当父表的键发生同时更新和删除时,我们还可以同时触发对有关子表的相应操作,这样更易于维护数据库的一致性。
  下面我们将对此展开详细的介绍。
  二、以级联方式删除数据
  为了保持连续性,我们在介绍如何以级联方式对子表数据进行更新和删除操作的时候,仍将使用前面所用的示例。在学习新内容之前,让我们先来回顾一下当特定的博客文章给删掉时,如何使用外键约束删除存储评论的数据表中的有关数据,注意,这里只涉及到删除操作。
  下面是我们示例中用到的两个表的定义:
DROP TABLE IF EXISTS `test`.`blogs`;CREATE TABLE `test`.`blogs` (`id` INT(<SPAN style="FONT-WEIGHT: COLOR: #) UNSIGNED AUTO_INCREMENT,`title` TEXT,`content` TEXT,`author` VARCHAR(<SPAN style="FONT-WEIGHT: COLOR: #) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;DROP TABLE IF EXISTS `test`.`comments`;CREATE TABLE `test`.`comments` (`id` INT(<SPAN style="FONT-WEIGHT: COLOR: #) UNSIGNED AUTO_INCREMENT,`blog_id` INT(<SPAN style="FONT-WEIGHT: COLOR: #) UNSIGNED DEFAULT NULL,`comment` TEXT,`author` VARCHAR(<SPAN style="FONT-WEIGHT: COLOR: #) DEFAULT NULL,PRIMARY KEY (`id`),KEY `blog_ind` (`blog_id`),CONSTRAINT `comments_ibfk_1` FOREIGN KEY (`blog_id`) REFERENCES `blogs` (`id`) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  上面的代码中,我们定义了两个简单的InnoDB表,第一个用于存储博客数据,第二个用来保存博客的有关评论。很明显,这两个表之间存在着一对多的关系,这正好可以用来演示外键约束的好处。现在,给我们的表填充如下所示的数据:
INSERT INTO blogs (id, title, content, author) VALUES (NULL,'Title of the first blog entry', 'Content of the first blog entry', 'Tom')INSERT INTO comments (id, blog_id, comment, author) VALUES (NULL, <SPAN style="FONT-WEIGHT: COLOR: #, 'Commenting first blog entry', 'Susan Norton'), (NULL, <SPAN style="FONT-WEIGHT: COLOR: #, 'Commenting first blog entry', 'Rose')
  好了,现在表中已经有数据了。但是,如何在应用程序层次之外删除blogs表的第一个数据项呢?实际上这很简单,如下所示的命令即可办到:
DELETE FROM blogs WHERE id = <SPAN style="FONT-WEIGHT: COLOR: #
  如果我们定义一个简单的外键约束,那么上述的DELETE命令不仅会删除第一篇博客,而且与之相关的所有评论也会随之清空,并且这一过程只需一步即可搞定,呵呵,听起来不错吧。
  然而,就像本文前面所说过的那样,InnoDB存储引擎还允许同时执行级联更新和删除这两种操作,下面我们会为读者详细介绍。
  三、扩展外键约束的用途
  现在是介绍在父表数据删除时如何对子表中的有关数据进行级联更新和删除的时候了,这能够有效简化处理这些表的应用程序的逻辑实现。
  为了帮您更好地理解InnoDB存储引擎提供的这一特性,我们将通过示例加以说明。现在,我们重新定义之前见过的那两个表,并规定特定博客被更新和删除时,要对表comments执行相应的级联动作。下面给出这两个表的定义:
DROP TABLE IF EXISTS `test`.`blogs`;CREATE TABLE `test`.`blogs` (`id` INT(<SPAN style="FONT-WEIGHT: COLOR: #) UNSIGNED AUTO_INCREMENT,`title` TEXT,`content` TEXT,`author` VARCHAR(<SPAN style="FONT-WEIGHT: COLOR: #) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;&&DROP TABLE IF EXISTS `test`.`comments`;CREATE TABLE `test`.`comments` (`id` INT(<SPAN style="FONT-WEIGHT: COLOR: #) UNSIGNED AUTO_INCREMENT,`blog_id` INT(<SPAN style="FONT-WEIGHT: COLOR: #) UNSIGNED DEFAULT NULL,`comment` TEXT,`author` VARCHAR(<SPAN style="FONT-WEIGHT: COLOR: #) DEFAULT NULL,PRIMARY KEY (`id`),KEY `blog_ind` (`blog_id`),CONSTRAINT `comments_ibfk_1` FOREIGN KEY (`blog_id`) REFERENCES `blogs` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  如上所示,定义的第一个表blog与前面的相同,我们只需注意一下第二个表就行了。本例中,表comments的字段保持不变,不同之处在于,这次它包含了如下所示的SQL语句:
CONSTRAINT `comments_ibfk_1` FOREIGN KEY (`blog_id`) REFERENCES `blogs` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  当然,这是负责博客更新和删除时,对其有关的评论进行级联更新和删除的。
  我们已经给外键blog_id指定了约束,现在上述的两个表之间的关系的完整性就可以完全在数据库级别来处理了,当然,在一些应用程序的性能方面可能会有些损失。下面我们将介绍如何轻松完成此项任务。
  四、外键约束的实际例子
  前面,我们已经定义了两个IndoDB表,并将其作为博客应用程序的构造块。现在,我们要做的是,每当有博客更新和删除时,同时更新和删除博客对应的所有评论。
  我们将通过具体的代码加以演示。 因此,假设存储在blogs表中的唯一的博客数据需要更新,那么有关评论也得同时更新,这时我们可以通过一个UPDATE语句来完成这一任务,代码如下所示:
  UPDATE blogs SET id = 2, title = 'Title of the first blog entry', content = 'Content of the first blog entry', author = 'John Doe' WHERE id = 1
  您可能猜到了,对第一个博客数据项的更新将自动地引起与该博客有关的评论的更新。现在,让我们利用如下所示的SQL查询来删除博客:
DELETE FROM blogs WHERE id = <SPAN style="FONT-WEIGHT: COLOR: #
  这时,MySQL会替我们删除有关的评论。现在,我们已经看到了外键约束在维护多个表的关系的一致性方面给我们带来的帮助。是不是很方便呀?还等什么,您也动手试一试吧!
  五、小结
  在本文中,我们为向读者详细介绍了如何在更新和删除父表数据的同时,触发有关子表数据的级联更新和删除操作。如您所见,当使用InnoDB表的时候,借助于外键约束就可以轻松搞定这一过程。
  需要说明的是,到目前为止,对示例数据库表的操作,他们都是手工通过SQL命令进行的,然而,在基于web的环境中,则需要利用某种端语言来跟MySQL打交道。其中,PHP就是一个不错的选择,所以,我们将在下一篇文章中讨论如何通过PHP 5使用外键约束。
阅读(2192) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
请登录后评论。阅读 19370
外键具有保持数据完整性和一致性的机制,对业务处理有着很好的校验作用。
user 表:id 为主键
profile 表: uid 为主键
简单来说,若表 profile 的 uid 列 作为表外键(外建名称:user_profile),以表 user&做为主表,以其 id列 做为参照(references),且联动删除/更新操作(on delete/update cascade)。则 user表 中删除 id 为 1 的记录,会联动删除 profile 中 uid 为 1 的记录。user 表中更新 id 为 1 的记录至 id 为 2,则profile 表中 uid 为 1 的记录也会被联动更新至&uid 为 2,这样即保持了数据的完整性和一致性。
B 存在外键 b_f_k,以 A 表的 a_k 作为参照列,则 A 为主表,B 为从表,A 中某记录更新或删除时将会联动&B 中外键与其关联对应的记录做更新或删除操作。
alter&table&`profile`
add&constraint&`user_profile`&foreign&key&(`uid`)
references&`user`(`id`)&on&delete&cascade&on&update&
在 profile 中为 uid 列添加名为 user_profile 的外键,且此外键的参照为 user 表的 id 列,关联的操作为删除和更新
1、表引擎必须为InnoDB,MyISAM不支持
2、外键必须建立索引(可以为普通、主键、唯一,事先不建立的话会自动创建一个普通索引),你要用的外键和参照的外表的键,即
alter&table&B&
add&constraint&`b_foreign_key_name`&foreign&key&(`bfk`)&
references&A(`afk`)&on&delete&no&action&on&update&no&
时 b_foreign_key_name 为外键名,bfk字段和afk字段都必须存在索引
3、外表为约束表,约束着含有外键的被约束表,即 B 含有一个以 A 作为参考表的外键,则 A 为主 B 为从,若关联on delete on update等动作,则 A 变更 B 会被变更,B 怎样变 A 不必跟随变动,且表 A 中必须事先存在 B 要插入的数据外键列的值,列如 B.bfk作为外键 参照 A.ak ,则 B.bfk插入的值必须是 A.ak 中已存在的
4、把3说的简单点就是若B有以A作为参照的外键,则B中的此字段的取值只能是A中存在的值,从表B会实时受到主表A的约束,同时若关联on delete on update等操作则当A中的被参照的字段发生delete或update时,B中的对应的记录也会发生delete 或 update操作,完整性。
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&
下面我们以一个简单的学生信息管理系统的数据表做为实例
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&
先把表和索引加好
//学生表&cid作为外键关联班级表&pid作为&档案表外键的关联&所以这俩货都得有索引
create&table&my_student(
`id`&int&unsigned&not&null&auto_increment&primary&key,
`name`&varchar(25)&not&null&comment&'student&name',
`pid`&int&unsigned&not&null&comment&'student&profile&id',
`cid`&int&unsigned&not&null&comment&'student&class&id',
key&`cid`(`cid`),
key&`pid`(`pid`)
)engine=InnoDB&default&charset=utf8&auto_increment=1;
//班级表&id作为&学生表外键的关联&已为主键索引
create&table&my_class(
`id`&int&unsigned&not&null&auto_increment&primary&key,
`cname`&varchar(25)&not&null&comment&'class&name',
`info`&tinytext&not&null&default&''
)engine=InnoDB&default&charset=utf8&auto_increment=1;
//档案表&id作为外键&关联&学生表&已为主键索引
create&table&my_profile(
`id`&int&unsigned&not&null&auto_increment&primary&key,
`pname`&varchar(25)&not&null&comment&'profile&name',
`info`&tinytext&not&null&default&''&comment&'student&info',
)engine=InnoDB&default&charset=utf8&auto_increment=1;
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&
这里我们将my_student作为my_profile的外表,即约束表,即my_profile以自身id作为 外键 关联 以 my_student 的pid字段作为参照,关联delete联动操作,update不做任何操作,如下
alter&table&my_profile&
add&constraint&profile_student&foreign&key&(`id`)&
references&my_student(`pid`)&on&delete&cascade&on&update&no&
这里我们将my_class作为my_student的外表,即约束表,即my_student以自身cid作为 外键 关联 以 my_class 的id字段作为参照,关联update联动操作,delete不做任何操作,如下
alter&table&my_student&
add&constraint&student_class&foreign&key&(`cid`)&
references&my_class(`id`)&on&update&cascade&on&delete&no&
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&
则当我删除my_student中 id=1 的学生时,其会将my_profile中id为此学生pid的记录删掉
//删除id为1的学生记录,因档案表以学生表作为外表约束,且关联&on&delete&cascade操作
delete&from&my_student&where&id&=&1;
这是外键机制自身执行的处理动作
delete&from&my_profile&where&id&=&(select&pid&from&my_student&where&id&=&1);
这是外键机制自身执行的处理动作
则当我更新my_class中 id=1 的班级为5时,其会将my_student中cid=1的学生更新为cid=5
//更新联动
update&my_class&set&id&=&5&where&id&=&1;
这是外键机制自身执行的处理动作
update&my_student&set&cid&=&5&where&cid&=&1;
这是外键机制自身执行的处理动作
贴出代码:
my_profile:
id做为外键,参照my_student以其pid作为关联,关联删除联动,更新无动作,则档案表受学生表的删除约束,当学生表中id为xx的记录被删除时,档案表中id为此记录pid的记录也会呗删除掉。
my_student:
pid作为档案表的外键关联所以要建立key `pid` 索引
以cid作为外键 参照 班级表的id 关联更新操作 删除无关联(用意为当班级的id发生变动时,学生表中每个学生的cid也会关联更新,这样即使班级表中的班级id发生变化,学生所属班级仍然保持着完整且一致)
班级表,id作为学生表的外键参照,为主键索引
实验开始:
1、删除学生表中的某个学生,则将其作为外表参照且关联删除联动操作的档案表中的记录也会被删除掉,关联关系为
my_profile.id = my_student.pid的记录
很容易看懂吧,删除id为22的学生时,他的pid为2,则档案表里id为2的记录也被关联删除了
2、修改班级id,学生表cid外键的更新联动 关联&班级表中的id,即当我变更班级id时,学生表中的cid也会被更新
很容易看懂吧,四年级的id由4更新为5时,以其作为参照表的学生表中属于四年级的小红的cid也由4更新为5。
on delete/update 的联动操作
no action / cascade / set null /&restrict
alter&table&B&
add&constraint&`bfk`&foreign&key&('fk_column_name')&
references&A('column_name')&on&delete&no&action&on&update&no&
alter&table&B&drop&foreign&key&`bfk`;
大家可以自行百度一下,这里就不啰嗦了,截稿!
& 著作权归作者所有
人打赏支持
码字总数 143168
后端工程师
好的,放在https://github.com/bubifengyun/book-yii2-dev-process/blob/master/src/ch-1-04.md这里了.
引用来自“不避风云”的评论文章非常好,想转载到一本书里,可否?谢谢啦。可以的
文章非常好,想转载到一本书里,可否?谢谢啦。
评论删除后,数据将无法恢复
mysql foreign key(外键) 说明与实例 一,什么是foreign key,及其完整性 个人觉得,foreign key就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完...
henosteven
基础 管理 高级 1、mysql分区技术 http://my.oschina.net/liting/blog/、mysql 外键(foreign key)的详解和实例 用法 1、mysql实现用拼音搜索中文的数据库实现 http://my.oschina....
在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束。 一,什么是foreign key,及其完整性 个人觉得,foreign key就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与...
SQL FOREIGN KEY 约束 一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。 让我们通过一个例子来解释外键。请看下面两个表: "Persons" 表: Id_P LastName FirstName Address City 1 A...
Amamatthew
一、什么是mysql中的外键(froeign key) 假如说有两张表,其中一张表的某个字段指向了另一张表的主键,这就可以称之为外键(froeign key)。 在子表中增加一条记录时,需要确定是否有与父表相...
说明:此文件包括了blog数据库中建立全部的表的Mysql语句. 在sql语句中注意“约束的概念": 1.实体完整性约束(主键--唯一且非空) primary key() 2.參照完整性约束(外键约束)foregin key() refe...
云栖希望。
BUG 1 IN查询结果不对 背景 在mysql5.6.16版本下,构建如下测试用例 从例子可以看到当tmptablesize=262144时,查询结果不对,而tmptablesize=时查询结果是正确的。 分析 查询结果跟...
阿里云RDS-数据库内核组
当在Mysql下删除有一个建有外键的表的数据时可能会报此异常,所以可以启动MySql命令行模式,运行如下的sql语句来关闭外键检测: SET FOREIGNKEYCHECKS = 0; 执行你要的操作后把再把外键检测恢...
1.面向对象编程 面向对象编程基本概念 类和对象的关系 如何定义类 成员属性(变量) 如何创建对象实例及如何访问对象属性 对象在内存中存在的形式 栈、堆、全局区、常量区和代码区的关系 成员方...
风雪中的舞者
Mysql错误:ERROR 1005 (HY000): Can't create table 'mytable.#sql-191_1c5e4' (errno: 150) alter table message_demo add constraint foreign key(type) references message_type(id) on......
没有更多内容
加载失败,请刷新页面
C++(浅析)智能指针及C#GC(垃圾回收机制)分析[图] c++中我们常常使用运算符new和delete来分配和释放动态内存,然而动态内存的管理非常容易出错 使用new 和delete 管理内存存在三个常见问题: ...
原创小博客
Java8新特性:接口静态方法与默认方法 Java8新特性:函数式接口@FunctionalInterface使用说明 Java8新特性:方法引用 Java8新特性:函数式编程 方法引用 什么是方法引用 方法引用是对函数式接口的...
依赖软件 安装Mysql 安装Tomcat (tomcat7, 必须为tomcat7,tomcat8跑不起来) 安装Nginx(nginx/1.5.3 及以上版本) 安装 zookeeeper (zookeeper-3.4.10, 注意zookeeper版本必须和pom中引...
jeremyli90
[root@namenode01 backup]# su - appLast login: Tue Apr 26 09:48:44 CST 2016 from application03 on pts/0su: failed to execute /bin/bash: Resource temporarily unavailable 如上,......
爱吃窝窝头
iOS开发之Accounts框架详解 Accounts框架是iOS原生提供的一套账户管理框架,其支持Facebook,新浪微博,腾讯微博,Twitter和领英账户管理的功能。需要注意,在iOS 11及以上系统中,将此功能已...
#lua 脚本配置
lua_package_path "/usr/local/src/nginx/conf/waf/?.lua";
lua_shared_dict limit 10m;
init_by_lua_file /usr/local/src/nginx/conf/waf/init.......
1.应用解耦 -- 订单系统通知计费系统 2.流量销峰 -- 秒杀 3.异步通知
_选自: 缓存架构设计细节二三事
查看索引 mysql& sho mysql& sh · Table 表的名称。 · Non_unique 如果索引不能包括重复词,则为0。如果可以,则为1。 · Key_name 索引的名称...
经常听到:接口要满足幂等性,同一个接口调用多次(使用相同的参数),应该返回相同的结果。 反驳:统计在线用户的接口,调用多次,很可能返回不一样的结果,这个接口不满足幂等性就有问题?...
placeholder
没有更多内容
加载失败,请刷新页面
文章删除后无法恢复,确定取消删除此文章吗?
亲,自荐的博客将通过私信方式通知管理员,优秀的博客文章审核通过后将在博客推荐列表中显示
确定推荐此文章吗?
确定推荐此博主吗?
聚合全网技术文章,根据你的阅读喜好进行个性推荐
指定官方社区
深圳市奥思网络科技有限公司版权所有

我要回帖

更多关于 mysql怎么添加外键约束 的文章

 

随机推荐