当前位置:网站首页>MySQL外键在数据库中的作用
MySQL外键在数据库中的作用
2022-08-09 10:36:00 【华为云】
MySQL外键的目的是控制存储在外键表中的数据,使两张表形成关联,是MySQL数据库中非常重要的组成部分,值得我们去深入了解。那么,MySQL外键究竟起到哪些作用呢?下文就将带您一探其中的秘密。
MySQL外键的作用
保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,外键只能引用外表中列的值!
例1
a b 两个表
a表中存有客户号,客户名称
b表中存有每个客户的订单
有了外键后,你只能在确定b 表中没有客户x的订单后,才可以在a表中删除客户x
建立外键的前提
本表的列必须与外键类型相同(外键必须是外表主键)。
指定主键关键字: foreign key(列名)
引用外键关键字: references <外键表名>(外键列名)
事件触发限制
on delete和on update , 可设参数cascade(跟随外键改动), restrict(限制外表中的外键改动),set Null(设空值),set Default(设默认值),[默认]no action
例2
outTable表 主键 id 类型 int
创建含有外键的表:
create table temp(
id int,
name char(20),
foreign key(id) references outTable(id) on delete cascade on update cascade);
说明:把id列设为MySQL外键,参照外表outTable的id列。当外键的值删除,本表中对应的列删除;当外键的值改变 本表中对应的列值改变。
注
MySQL中一张表只能有一个主键,主键可以由多个字段组成。
在mysql手册中讲到,在MySQL中的所有计算都是使用双精度完成的,使用float(单精度)会有误差,出现意想不到的结果。
在我们查询数据时,MySQL使用64位十进制数值的精度执行DECIMAL操作,float(5.54) = 5.54 如果出现精度丢失,这个是不等的。这样,本来我们应该能查到的数据就会莫名其妙的消失。
边栏推荐
- Redis + NodeJS 实现一个能处理海量数据的异步任务队列系统
- TELNET协议相关RFC
- 可能95%的人还在犯的PyTorch错误
- 小程序员的发展计划
- StratoVirt 中的虚拟网卡是如何实现的?
- Shell script combat (2nd edition) / People's Posts and Telecommunications Press Script 1 Find programs in the PATH
- 使用pip成功安装某个库,但pycharm中找不到,此问题的解决方案
- 壁纸
- [贴装专题] 贴装流程中涉及到的位置关系计算
- 【报错记录】解决华擎J3455-ITX不插显示器无法开机的问题
猜你喜欢
LM小型可编程控制器软件(基于CoDeSys)笔记二十六:plc的数据存储区(模拟量输入通道部分)
Shell script combat (2nd edition) / People's Posts and Telecommunications Press Script 1 Find programs in the PATH
深度学习--循环神经网络(Recurrent Neural Network)
使用cpolar远程连接群晖NAS(创建临时链接)
分类预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多特征分类预测
相关系数计算,热力图绘制,代码实现
[贴装专题] 贴装流程中涉及到的位置关系计算
深度学习--神经网络(基础讲解)
[Halcon&定位] 解决Roi区域外的模板匹配成功
【 original 】 VMware Workstation implementation Openwrt soft routing, the ESXI, content is very detailed!
随机推荐
Throwing a question? The execution speed of the Count operation in the Mysql environment is very slow. You need to manually add an index to the primary key---MySql optimization 001
shell脚本实战(第2版)/人民邮电出版社 脚本1 在PATH中查找程序
VBA实战(11) - 工作表(Sheet) 操作汇总
By asking where the variables are stored, the shepherd boy laughed and said to use pointers, Go lang1.18 introductory refining tutorial, from Bai Ding to Hongru, the use of go lang type pointers (Poin
OpengGL绘制立方体的三种方法
10000以内素数表(代码块)
tensor.eq() tensor.item() tensor.argmax()
深度学习--生成对抗网络(Generative Adversarial Nets)
unix环境编程 第十五章 15.5FIFO
关于页面初始化
分类预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多特征分类预测
单元测试1之单元测试的引用
2021-01-11-雪碧图做表情管理器
tuple dictionary collection
强化学习 (Reinforcement Learning)
相伴成长,彼此成就 用友U9 cloud做好制造业数智化升级的同路人
UNIX Environment Programming Chapter 15 15.6 XSI IPC
Unix Environment Programming Chapter 14 14.4 I/O Multiplexing
Nodejs服务端
[贴装专题] 贴装流程中涉及到的位置关系计算