为表添加外键约束的语法

Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名);

为表student添加外键约束

执行成功后,使用DESC来查看学生表和班级表

可以看出,grade表中的id是主键,student表中的gid是外键

使用show create table,查看表的详细结构

可以看出,gid为student表的外键,并且,gid依赖于grade表中的id主键。

为表添加外键约束时,需要注意

1、建立外键的表,必须为InnoDB型,不能使临时表,因为,在MySQL中只有InnoDB类型的表,才支持外键。

2、定义外键名时,不能加引号,比如constraint’FK_ID’或constraint”FK_ID”都是错误的

添加外键约束的参数说明

建立外键,是为了保证数据的完整和统一性,如果,主表中的数据被删除或修改,那么,从表中对应的数据也应该被删除,否则,数据库会存在很多无意义的垃圾数据。

MySQL可以在建立外键时,添加ON DELETE或ON UPDATE子句,来告诉数据库,怎样避免垃圾数据的产生

语法格式

alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名);

参数说明

CASCADE——删除包含与已删除键值,有参照关系的所有记录

SET NULL——修改包含与已删除键值,有参照关系的所有记录,使用NULL值替换,不能用于已标记为NOT NULL的字段

NO ACTION——不进行任何操作

RESTRICT——拒绝主表删除或修改外键关联词,在不定义ON DELETE和ON UPDATE子句时,这是默认设置,也是最安全的的设置

mysql给表加外键约束_MySQL为表添加外键约束相关推荐

  1. mysql数据库怎么添加主键约束_mysql修改表时怎么添加主键约束?

    mysql中可以通过"ALTER TABLE 表名 ADD PRIMARY KEY(字段名);"语句在修改数据表时添加主键约束:当在修改表时要设置表中某个字段的主键约束时,要确保设 ...

  2. 如何增加mysql主键约束_mysql修改表时怎么添加主键约束?

    mysql中可以通过"ALTER TABLE 表名 ADD PRIMARY KEY(字段名);"语句在修改数据表时添加主键约束:当在修改表时要设置表中某个字段的主键约束时,要确保设 ...

  3. mysql创建主键约束_mysql建表键约束(主键约束,自增约束)

    -- 主键约束: id int primary key 可以唯一确定一张表中的一条记录,也就是通过给某个字段添加约束,就可以使得字段不重复且不为空. create table date ( id in ...

  4. mysql建表后添加约束_MYSQL建表完成之后添加约束

    1.主键约束 添加:alter table table_name add primary key (字段) 删除:alter table table_name drop primary key 2.非 ...

  5. mysql 一对多 右表多条记录合并_MYSQL 单表一对多查询,将多条记录合并成一条记录...

    一.描述: 在MySQL 5.6环境下,应工作需求:将一个表中多条某个相同字段的其他字段合并(不太会表达,有点绕,直接上图) 想要达到的效果: 实现SQL语句: SELECT a.books, GRO ...

  6. mysql的innodb表生成的物理文件_MySQL innodb表使用表空间物理文件复制或迁移表

    MySQL InnoDB引擎的表通过拷贝物理文件来进行单表或指定表的复制,可以想到多种方式,今天测试其中2种: 将innodb引擎的表修改为Myisam引擎,然后拷贝物理文件 直接拷贝innodb的表 ...

  7. mysql锁表问题的解决方法_MYSQL锁表问题的解决方法

    本文实例讲述了MYSQL锁表问题的解决方法.分享给大家供大家参考,具体如下: 很多时候!一不小心就锁表!这里讲解决锁表终极方法! 案例一 mysql>show processlist; 参看sq ...

  8. mysql更新多表sql语句怎么写_MySQL多表updatesql语句总结

    MySQL 多表 update 有几种不同的写法.假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price:另外一张表是 MySQL 多表 update 有几种不同的写法. ...

  9. mysql增加修改主键_mysql怎么修改添加主键

    mysql修改添加主键的方法:执行[ALTER TABLE `test2` DROP PRIMARY KEY ,ADD PRIMARY KEY ( `id` );]语句即可修改主键. 添加表字段 (推 ...

最新文章

  1. PCL滤波介绍(3)
  2. [二]Java虚拟机 jvm内存结构 运行时数据内存 class文件与jvm内存结构的映射 jvm数据类型 虚拟机栈 方法区 堆 含义...
  3. 心得体悟帖---16、哪些看起来很难做的事情真的不过如此
  4. keras从入门到放弃(十三)卷积神经网络处理手写数字识别
  5. 【sprinb-boot】lib分离打包
  6. 轨道角度分布图_高分五号:大气气溶胶多角度偏振探测仪
  7. PHP 结合 Boostrap 结合 js 实现学生列表删除编辑以及搜索功能(完结)
  8. 学术圈炸了!IEEE限制华为相关专家参与审稿:这操作毁尽三观
  9. 由先序+后序遍历确定序列是否唯一并输出一个中序序列
  10. 实验室服务器安装虚拟机,如何使用VM虚拟机创建私有网络试验室
  11. Linux: 介绍make menuconfig中的每个选项含义【转】
  12. java一寸是多少像素_一寸照片的尺寸是多少像素
  13. “超低能,劲搞笑”笑话管理系统 v2.0
  14. 酷6 期待“化茧成蝶”
  15. OSF SDN在云计算网络虚拟化中的应用
  16. iOS关于图片点到像素转换之杂谈
  17. 【Python】手把手教你用Python爬取某网小说数据,并进行可视化分析
  18. 地统计插值学习心得(三)ArcGIS Pro与ArcMap软件中地统计分析的区别
  19. 机器人旋转关节非线性摩擦辨识
  20. Python统计《红楼梦》人物出现频率

热门文章

  1. 【Jade】jade的一些使用技巧
  2. 安卓音视频开发,字节跳动Android实习面试凉凉经,年薪超过80万!
  3. 阿里架构师强烈推荐《数据结构与算法经典问题解析》(PDF文档)
  4. sql delete删除表的数据
  5. 国际:Ruby、Python不能威胁Java的13个理由
  6. Python机器学习基础教程10
  7. UML建模—EA的使用(一)EA基本设置及类的设计
  8. 机4月升级鸿蒙,鸿蒙系统4月升级:一文教你看懂什么是鸿蒙系统?
  9. 通过端口映射访问内网SVN
  10. java drawimage图片不完整,调了一天没调对,是drawImage问题,说是空指针