[DB]MYSQL外键(Foreign Key)的使用(转载)
在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束。
外键的使用条件:
1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);
2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显式建立;
3.外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;
外键的好处:可以使得两张表关联,保证数据的一致性、完整性和实现一些级联操作;
外键的定义语法:
[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)
REFERENCES tbl_name (index_col_name, ...)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
该语法可以在 CREATE TABLE 和 ALTER TABLE 时使用,如果不指定CONSTRAINT symbol,MYSQL会自动生成一个名字。
ON DELETE、ON UPDATE表示事件触发限制,可设参数:
RESTRICT(限制外表中的外键改动)
CASCADE(跟随外键改动)主表删除外表级联删除
SET NULL(设空值)主表删除外表外键设为空
SET DEFAULT(设默认值)
NO ACTION(无动作,默认的)
转载于:https://www.cnblogs.com/wanping/archive/2013/01/01/2841741.html
[DB]MYSQL外键(Foreign Key)的使用(转载)相关推荐
- MYSQL外键(Foreign Key)的使用
在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束. 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持 ...
- mysql 外键(foreign key)的详解和实例_MySQL数据库外键
设置外键 外键及功能:成绩表(参照表也叫子表)中的学号来自学生表(被参照表也叫父表),成绩表中的课程号来自课程表:当要删除或更新被参照表中的给字段的值时,参照表该字段的值如何改变.在on delete ...
- 【MySQL】解决MySQL删除外键(foreign key)时报错问题
[MySQL]解决MySQL删除外键(foreign key)时报错问题 文章目录 [MySQL]解决MySQL删除外键(foreign key)时报错问题 一.现象 二.分析 三.问题解决 四.拓展 ...
- 数据库六大约束用法:主键(primary key)、外键(foreign key)、非空(not null)、默认(default)、检查(check)、唯一(unique)
1. 数据库有六大约束 主键(primary key) 外键(foreign key):被参照的键必须有唯一约束或是主键 非空(not null) 默认(default) 检查(check):orac ...
- Mysql完整性约束详解(字段唯一,非空,主键primary key,外键foreign key,自增长auto_increment)
引入 1.什么是完整性约束, 为什么使用 为了规范数据格式, 在用户进行插入.修改.删除等操作时,DBMS(数据库管理系统(Data Base Management System))自动按照约束条件对 ...
- mysql foreign key_MYSQL外键(Foreign Key)的使用
在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束. 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持 ...
- mysql set foreign key_Mysql 外键(FOREIGN KEY)使用注意事项
外键,FOREIGN KEY, 这个东东,作为DBA,在Oracle我们都不建议在数据库级别去实现约束,因为他的维护成本很高, 比如你要保证索引,导入数据时你得保证先后顺序等,所以我们更推荐由应用去控 ...
- Java数据库foreign,mysql中的外键foreign key 作者:Java_xb
一张表中可以有多个外键. 外键的默认作用有两点: 1.对子表(外键所在的表)的作用:子表在进行写操作的时候,如果外键字段在父表中找不到对应的匹配,操作就会失败. 2.对父表的作用:对父表的主键字段进行 ...
- mysql中的foreignkey的作用_mysql中的外键foreign key
一.如果一张表中有一个非主键的字段指向了别一张表中的主键,就将该字段叫做外键. 一张表中可以有多个外键. 外键的默认作用有两点: 1.对子表(外键所在的表)的作用:子表在进行写操作的时候,如果外键字段 ...
- SQL外键foreign key 表与表之间的三种关系
表与表之间的三种关系 多对一关系表 注意事项: 一对多表关系,外键字段建在多的一方. 在创建表的时候,一定要先建被关联表. 在录入数据的时候,也必须先录入被关联表. 删除 一定要先删除主键表,才可以删 ...
最新文章
- iOS中你可能没有完全弄清楚的(二)自己实现一个KVO源码及解析
- element table多选只能选中当前页数据_element-ui里的el-table 前端分页
- vs2013 乱码问题
- php 基础函数写法,字符串,常用函数
- “美登杯”上海市高校大学生程序设计邀请赛 (华东理工大学)
- java中的工厂模式_深入理解Java的三种工厂模式
- 详测 Generics Collections TQueue (3): OnNotify、Extract
- ASP.NET MVC 学习之路-5
- 月薪23333元!淘宝招募“首席鉴雕官”,只需天天哈哈哈哈哈
- 二十五.决策树之CART决策树的原理和sklearn实现
- Android 上千实例源码分析以及开源分析
- mybatis mysql begin end_sql中的begin....end
- 使用Kettle读取Excel文件中的数据,存储在MySQL中
- PC端页面如何调用QQ进行在线聊天?
- 绝对值对应c语言表达式,c语言绝对值函数?
- 烟沙浮生 | 曾几何时,还是游吟长安的醉客 1
- Floyd算法求最短路径(附代码实例)
- iphone7plus计算机,iPhone 7 Plus和iPhone 8 Plus的区别-太平洋电脑网
- Python爬虫的实际运用之:破解滑动验证码
- micropython ws2812b 渐变灯
热门文章
- SSH 协议端口号 22 背后的故事
- 阿里云吴结生:今天的应用架构,正处在一个不可测的阶段
- 阿里云存储:做深基础,助力新基建 | 凌云时刻
- 阿里巴巴对外开源液冷数据中心技术
- 中国电子技术标准化研究院与Linux基金会战略合作签约仪式圆满落幕
- 【光学】基于matlab GUI带切趾的光线布拉格光栅滤波特性仿真【含Matlab源码 1505期】
- 【优化分配】基于matlab粒子群算法求解火车票分配优化问题【含Matlab源码 1137期】
- 【数字基带信号】基于matlab三阶高密度双极型码【含Matlab源码 990期】
- java的dequeue_$.queue() 与 $.dequeue() -- 队列
- 永久删除谷歌浏览器缩略图_“暮光之城”如何永久破坏了Google图片搜索