前言
在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束。

外键的使用条件:
1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);
2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立;
3.外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;
外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作;
一、外键的创建
语法一:后续添加方法
alter table 表名 add constraint 约束名 foreign key(当前表中约束的字段) references 主表表名(要约束的字段名);
alter table student add constraint fk_class_student foreign key(cls_id) class(cls_id) on update cascade on delete no action;
语法二:创建表的方法
CREATE TABLE student(
sid int PRIMARY KEY,
cls_id int not null,
sname varchar(10) not null,
constraint fk_class_student foreign key(cls_id) references class(cls_id) on update cascade on delete no action
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
一个额外点:
SHOW CREATE TABLE class
可以查询表的建表信息
CREATE TABLE `class` (
`cls_id` int NOT NULL,
`cls_name` varchar(15) NOT NULL,
PRIMARY KEY (`cls_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
下面的演示我们就使用刚刚创建的这个学生表和班级表
内容如下
二,关于四种约束方式
在父表上进行update/delete操作时,子表的操作类型
- CASCADE 子表会删除包含与已删除键值有参照关系的所有数据
- SET NULL 父表delete、update的时候,子表会将关联记录的外键字段所在列设为null
- RESTRICT 拒绝有关联关系的字段的删除要求(这是默认设置,也是最安全的设置)
- NO ACTION 和RESTRICT 类似
以我们刚刚设置的外键为例(on update cascade on delete no action)
当我们尝试进行删除操作时
delete from class WHERE cls_id=1
结果如下
可以看到由于外键约束中on delete no action的存在,不允许对主表进行删除操作。但是子表可以
delete from student WHERE cls_id=1
当我们对父表的关联键进行更新操作时,由于on update cascade的存在,可以正常更新
UPDATE class set cls_id=4 where cls_id=1
并且随着主表的更新,子表中的外键字段也进行了更新
三,删除外键的方法
alter table 子表名 drop foreign key 外键约束名
alter table student drop foreign key fk_class_student
当我们将外键删除之后,父表的操作就变得可以正常进行了
总结
相关推荐:
seo要会些什么,seo需要学些什么内容 ,轻盈ai
ChatGPT恢复正常使用时间,提升你的工作与生活效率,联想电脑AI0510
ChatGPT无法加载?检查您的网络设置并尝试重启,轻松解决连接问题!,ai制作艺术字
《*采集站:带你领略全球最全*资源的宝藏平台》,seo优化易下拉瞧瞧
seo软件叫什么,seo软件视频教程 ,eps ai 缩略图
ChatGPT目前,我无法查看或打开附件,但我依然能为你提供全面的帮助,苹果ai谷歌ai
为什么选择B站VIP?让你畅享更丰富的视听体验,小门类网站seo
AI一键生成文章在线:提升创作效率,改变写作方式
seo算是什么营销方式,seo是网络营销吗 ,ai318
GPT人工智能-让未来触手可及的智慧之光,ai头花写真
seo网站通过什么软件,网站seo软件哪个 ,战团ai
SEO表格:优化网站排名的秘密武器,大数据推广营销费用多少
AI缩短短文-提升创作效率,写作新体验,光速写作业ai写作app
怎么分辨文章是不是AI写的?五大技巧揭开真相
什么是seo网络推广seo顾问,seo网络推广员 ,ai20170119
chatai写作免费一键生成,轻松解决写作难题!,陈逗逗ai换脸在线看
AI工具,让工作效率翻倍:AI工具教程全面解析
SEO超级,助力企业站点冲刺搜索引擎排名,白云全网营销推广哪家强
OpenAI新产品与现有技术的完美结合:赋能未来的智能变革,培训 ai
怎么用AI生成一篇文章?高效创作指南全揭秘!
SEO项目指的是什么,seo项目指的是什么意思 ,写个ai
SEO总计:如何通过SEO优化实现网站流量和排名的飞跃,三元桥网站优化
SEO利用:让你的网站快速登顶,获取更多流量与客户!,延边小程序推广平台网站
ChatGPTO1免费:突破智能聊天的极限,体验AI无限可能,糯米ai唱歌
SEO任何:如何通过精准优化让网站流量突破极限,太原网站建设培训班
OpenAI无法验证支付方式?解决方案与常见问题解析,你好月光ai
SEO广告:如何借助SEO提升品牌曝光与销售业绩?,网站推广怎么选择
seo需要什么能力,seo需要哪些技术 ,ai长条弯曲
AI网页版智能问答,开启智慧沟通新时代,ai梦境档案用不了手柄
ChatGPT遇到问题?如何解决“您的应用遇到问题,无法正常启动”困境?,ai下载增强版
SEO可以改变你的商业未来:如何通过优化提升网站流量和转化率,五粮液营销推广
SEO做好,企业网站流量翻倍的关键,seo白帽技术有哪些
SEO表述:如何通过精准优化让你的内容脱颖而出,江阴网站建设怎么样啊
SEO客服:如何提升客户体验与业务转化的双赢策略,鄂州网站建设公司教程
什么是seo概念,什么是seo,sem ,ai音标谐音
GPT优化:让你的工作与生活更高效、更智能,Ai__79
ChatGPT连了外网也登不了?如何解决这一问题,重新畅享AI助力!,ai少女大瓜
SEO舆情:如何通过有效的舆情管理提升企业品牌形象,seo推广外包提高收录
SEO数量-如何提升你的网站排名与流量?,射阳seo优化五星服务
ChatGPT无法加载?检查您的网络设置并尝试重启ChatGPT,助您畅享无障碍智能对话体验,ai记录人
AI免费工具:提升效率与创意的秘密武器
OpenAI您的信用卡被拒绝了?请尝试用借记卡支付,轻松解决支付问题!,ai cdr缩略图补丁
seo用什么法宝,列出5种seo赚钱方式 ,ai怎么更改文档样式
ChatGPT安装包Windows版:让AI助力你的工作与生活,人工智能ai不是梦在线
专业SEO方案助力企业网站流量暴增,精准引流不再是难题,网站建设合同4篇
SEO找词:如何精准找到高效关键词,提升排名和流量,河源网站优化平台
ChatGPT:引领智能对话新潮流,助力未来科技,ai写作免费议论文
AI搜索写文章是什么意思?人工智能赋能内容创作的未来,高德地图 ai
ChatGPT中显示已进行一处编辑,但看不到内容?你需要了解的隐藏问题!,ai敲
SEO文案:如何通过巧妙布局提升网站排名,吸引更多流量,娄底网站建设工作文案