在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)的使用(转载)相关推荐

  1. MYSQL外键(Foreign Key)的使用

    在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束. 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持 ...

  2. mysql 外键(foreign key)的详解和实例_MySQL数据库外键

    设置外键 外键及功能:成绩表(参照表也叫子表)中的学号来自学生表(被参照表也叫父表),成绩表中的课程号来自课程表:当要删除或更新被参照表中的给字段的值时,参照表该字段的值如何改变.在on delete ...

  3. 【MySQL】解决MySQL删除外键(foreign key)时报错问题

    [MySQL]解决MySQL删除外键(foreign key)时报错问题 文章目录 [MySQL]解决MySQL删除外键(foreign key)时报错问题 一.现象 二.分析 三.问题解决 四.拓展 ...

  4. 数据库六大约束用法:主键(primary key)、外键(foreign key)、非空(not null)、默认(default)、检查(check)、唯一(unique)

    1. 数据库有六大约束 主键(primary key) 外键(foreign key):被参照的键必须有唯一约束或是主键 非空(not null) 默认(default) 检查(check):orac ...

  5. Mysql完整性约束详解(字段唯一,非空,主键primary key,外键foreign key,自增长auto_increment)

    引入 1.什么是完整性约束, 为什么使用 为了规范数据格式, 在用户进行插入.修改.删除等操作时,DBMS(数据库管理系统(Data Base Management System))自动按照约束条件对 ...

  6. mysql foreign key_MYSQL外键(Foreign Key)的使用

    在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束. 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持 ...

  7. mysql set foreign key_Mysql 外键(FOREIGN KEY)使用注意事项

    外键,FOREIGN KEY, 这个东东,作为DBA,在Oracle我们都不建议在数据库级别去实现约束,因为他的维护成本很高, 比如你要保证索引,导入数据时你得保证先后顺序等,所以我们更推荐由应用去控 ...

  8. Java数据库foreign,mysql中的外键foreign key 作者:Java_xb

    一张表中可以有多个外键. 外键的默认作用有两点: 1.对子表(外键所在的表)的作用:子表在进行写操作的时候,如果外键字段在父表中找不到对应的匹配,操作就会失败. 2.对父表的作用:对父表的主键字段进行 ...

  9. mysql中的foreignkey的作用_mysql中的外键foreign key

    一.如果一张表中有一个非主键的字段指向了别一张表中的主键,就将该字段叫做外键. 一张表中可以有多个外键. 外键的默认作用有两点: 1.对子表(外键所在的表)的作用:子表在进行写操作的时候,如果外键字段 ...

  10. SQL外键foreign key 表与表之间的三种关系

    表与表之间的三种关系 多对一关系表 注意事项: 一对多表关系,外键字段建在多的一方. 在创建表的时候,一定要先建被关联表. 在录入数据的时候,也必须先录入被关联表. 删除 一定要先删除主键表,才可以删 ...

最新文章

  1. iOS中你可能没有完全弄清楚的(二)自己实现一个KVO源码及解析
  2. element table多选只能选中当前页数据_element-ui里的el-table 前端分页
  3. vs2013 乱码问题
  4. php 基础函数写法,字符串,常用函数
  5. “美登杯”上海市高校大学生程序设计邀请赛 (华东理工大学)
  6. java中的工厂模式_深入理解Java的三种工厂模式
  7. 详测 Generics Collections TQueue (3): OnNotify、Extract
  8. ASP.NET MVC 学习之路-5
  9. 月薪23333元!淘宝招募“首席鉴雕官”,只需天天哈哈哈哈哈
  10. 二十五.决策树之CART决策树的原理和sklearn实现
  11. Android 上千实例源码分析以及开源分析
  12. mybatis mysql begin end_sql中的begin....end
  13. 使用Kettle读取Excel文件中的数据,存储在MySQL中
  14. PC端页面如何调用QQ进行在线聊天?
  15. 绝对值对应c语言表达式,c语言绝对值函数?
  16. 烟沙浮生 | 曾几何时,还是游吟长安的醉客 1
  17. Floyd算法求最短路径(附代码实例)
  18. iphone7plus计算机,iPhone 7 Plus和iPhone 8 Plus的区别-太平洋电脑网
  19. Python爬虫的实际运用之:破解滑动验证码
  20. micropython ws2812b 渐变灯

热门文章

  1. SSH 协议端口号 22 背后的故事
  2. 阿里云吴结生:今天的应用架构,正处在一个不可测的阶段
  3. 阿里云存储:做深基础,助力新基建 | 凌云时刻
  4. 阿里巴巴对外开源液冷数据中心技术
  5. 中国电子技术标准化研究院与Linux基金会战略合作签约仪式圆满落幕
  6. 【光学】基于matlab GUI带切趾的光线布拉格光栅滤波特性仿真【含Matlab源码 1505期】
  7. 【优化分配】基于matlab粒子群算法求解火车票分配优化问题【含Matlab源码 1137期】
  8. 【数字基带信号】基于matlab三阶高密度双极型码【含Matlab源码 990期】
  9. java的dequeue_$.queue() 与 $.dequeue() -- 队列
  10. 永久删除谷歌浏览器缩略图_“暮光之城”如何永久破坏了Google图片搜索