一、如果一张表中有一个非主键的字段指向了别一张表中的主键,就将该字段叫做外键。

一张表中可以有多个外键。

外键的默认作用有两点:

1.对子表(外键所在的表)的作用:子表在进行写操作的时候,如果外键字段在父表中找不到对应的匹配,操作就会失败。

2.对父表的作用:对父表的主键字段进行删和改时,如果对应的主键在子表中被引用,操作就会失败。

外键的定制作用----三种约束模式:

district:严格模式(默认), 父表不能删除或更新一个被子表引用的记录。

cascade:级联模式, 父表操作后,子表关联的数据也跟着一起操作。

set null:置空模式,前提外键字段允许为NLL,  父表操作后,子表对应的字段被置空。

使用外键的前提:

1. 表储存引擎必须是innodb,否则创建的外键无约束效果。

2. 外键的列类型必须与父表的主键类型完全一致。

3. 外键的名字不能重复。

4. 已经存在数据的字段被设为外键时,必须保证字段中的数据与父表的主键数据对应起来。

二、新增外键

1. 在创建时增加

create table my_tab1(

id int primary key auto_increment,

name varchar(10) not null,

class int,

foreign key(class) references my_tab2(主键字段名);

)charset utf8;

2. 在创建好的表中增加

alter table my_tab1 add [constraint 外键名] foreign key(外键字段名) references mytab2(主键字段名);

三、删除外键

alter table my_tab drop foreign key 外键名字;

mysql中的foreignkey的作用_mysql中的外键foreign key相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. mysql 权限 备份还原,MYSQL学习笔记09:备份还原,用户权限,外键

    在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 整个数据库数据备份也称为sql数据备份:备份的结果都是sql指令 在mysql中,提供了专门用于备份sql的客户端: ...

  9. mysql 未能启用约束_未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。...

    来源:http://www.cnblogs.com/JuneZhang/archive/2013/01/10/2853981.html 今天运行项目,提示"未能启用约束.一行或多行中包含违反 ...

最新文章

  1. 【通俗理解线性代数】 -- 特殊的矩阵
  2. Richardson RazorSQL中文版
  3. 53个要点提高PHP编程效率
  4. input变下划线的输入框CSS
  5. Java Data Base Connection(JDBC)
  6. Spring容器初始化实现V3 版本
  7. 【转】ASPX和HTML获取系统根目录的路径
  8. win10 make命令的安装
  9. 2021中国智能驾驶核心软件产业研究报告:软件定义,数据驱动.pdf(附下载链接)...
  10. C语言入门130题-OJ
  11. DateFormat的使用
  12. C# 按层选择 AutoCAD二次开发
  13. PCI Express转并口卡不能是被HJtag识别的解决办法
  14. Windows下利用N2N访问内网资源,点对网的实现
  15. VMware 8安装Mac OS X 10.8 Lion
  16. mc服务器称号显示插件,[聊天]UDtitle ——称号管理(仓库) 1.1.6 [全版本]
  17. 阿姆达尔定律(Amdahl’s Law)
  18. jquery方法之append()与appendto()
  19. pytorch忽略user warning
  20. 我活成了自己曾经很鄙视的样子

热门文章

  1. 计算机图形学·画图板
  2. pe启动自定义linux,详解PE启动自定义脚本
  3. 1553B总线介绍及其硬件方案设计
  4. 计算机技术有哪些最基本的特征,计算机有哪些特点?计算机的特点是什么
  5. 中国冶金工业节能减排行业十四五发展方向及投资战略决策建议报告2021-2027年
  6. android播放网络音频
  7. 服务总线yali测试_总线压力测试系统及其方法
  8. 这家公司成立30天估值过亿,创始人施襄竟然高中未毕业
  9. PTA 吃鱼还是吃肉
  10. 儿童斜视可发展为弱视,治疗不及时将影响孩子终生