首页
关于
留言
壁纸
更多
直播
统计
友链
Search
1
好用的软件分享
354 阅读
2
最新Navicat 15 for MySQL破解+教程 正确破解步骤
261 阅读
3
面试常见问题100问
218 阅读
4
一个人要走的时候,千万别问原因
182 阅读
5
直击心灵的唯美句子
143 阅读
日常记录
后端
PHP
NodeJs
Python
Java
前端
JavaScript
数据库
MySQL
服务器
美文
微信开发
微信公众号
微信小程序
编程
登录
Search
标签搜索
mysql
python
django
express
面试
axios
thinkphp
PHP
励志
哲理
九九乘法表
node
cors
跨域
唯美句子
美文
文件上传
ajax
算法
jwt
公子初心
累计撰写
74
篇文章
累计收到
9
条评论
首页
栏目
日常记录
后端
PHP
NodeJs
Python
Java
前端
JavaScript
数据库
MySQL
服务器
美文
微信开发
微信公众号
微信小程序
编程
页面
关于
留言
壁纸
直播
统计
友链
搜索到
1
篇与
的结果
2024-01-19
MySQL外键约束(FOREIGN KEY)
1. 外键概述MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。如果不是特别理解什么是主表,什么是从表 请查看下面2建表中的内容主表删除某条记录时,从表中与之对应的记录也必须有相应的改变。一个表可以有一个或多个外键,外键可以为空值,若不为空值,则每一个外键的值必须等于主表中主键的某个值。1.1 CASCADE 级联操作ON DELETE CASCADE 删除时级联 ,删除主表 从表对应记录随之删除ON UPDATE CASCADE 修改时级联 , 修改主表 从表对应记录随之修改1.2 RESTRICT 严格模式ON DELETE RESTRICT 删除时严格 ,删除主表 从表对应记录存在则主表不允许删除ON UPDATE RESTRICT 修改时严格 , 修改主表 从表有对应记录则主表不允许修改1.3 常规操作ON DELETE RESTRICT 删除时严格 ,删除主表 从表对应记录存在则主表不允许删除ON UPDATE CASCADE 修改时级联 , 修改主表 从表对应记录随之修改1.4 定义外键时,需要遵守下列规则:主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表称为自参照表,这种结构称为自参照完整性。必须为主表定义主键。主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。在主表的表名后面指定列名或列名的组合。这个列或列的组合必须是主表的主键或候选键。外键中列的数目必须和主表的主键中列的数目相同。外键中列的数据类型必须和主表主键中对应列的数据类型相同。2. 建表一张专业表,一张学生表,如下图所示专业表为主表(父表)学生表为从表(子表),学生表的mid为外键关联专业表的id从以上截图大家不难看出,想要实现外键约束必须要求这两张表的引擎为 innodb2.1 使用sql语句建表时设置表引擎为innodb create table major( id int primary key auto_increment, major_name varchar(20) )engine=innodb;2.2 使用navicat for mysql建表时候设置表引擎为innodb3. SQL添加外键3.1 在创建表时设置外键约束CREATE TABLE student( id INT(11) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(25), mid INT(11), CONSTRAINT f1 FOREIGN KEY(mid) REFERENCES major(id) ON DELETE CASCADE ON UPDATE CASCADE )ENGINE=INNODB3.2 表创建成功后添加外键约束ALTER TABLE <数据表名> ADD CONSTRAINT <外键名> FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>); ALTER TABLE student ADD CONSTRAINT f1 FOREIGN KEY(mid) REFERENCES major (id) ON DELETE RESTRICT ON UPDATE CASCADE;4. Navicat for MySQL 添加外键5. 删除外键5.1 sql命令删除ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>; ALTER TABLE student DROP FOREIGN KEY f1;5.2 Navicat for MySQL 删除外键
2024年01月19日
106 阅读
2 评论
2 点赞