美文网首页数据库
mysql创建外键约束

mysql创建外键约束

作者: 陆_志东 | 来源:发表于2018-09-07 10:09 被阅读0次

语法:

foregin key(当前表字段) references 父表(父表字段) [ON DELETE reference_option] [ON UPDATE reference_option]

reference_option 选项:
CASCADE: 从父表中删除或者更新对应的行,当前子表同时删除或者更新对应的行
SET NULL: 从父表中删除或者更新对应行,当前子表同时将外键列设置为NULL,如果子表外键字段设置了NOT NULL,还需要设置DEFAULT,否则会出错
NO ACTION: InnoDB拒绝删除或者更新父表,对父表的外键字段拒绝操作,这意味着删除父表中的行也会失败
RESTRICT: 拒绝删除或者更新父表
SET DEFAULT: InnoDB目前不支持。

外键约束常用的两种选项

  • 父表更新同时更新子表,父表删除的时候如果子表不存在对应的数据删除成功,如果存在对应数据,删除失败.
ON UPDATE CASCADE ON DELETE RESTRICT;
  • 父表更新同时更新子表,父表删除子表的数据也删除.
ON UPDATE CASCADE ON DELETE CASCADE

没有创建mysql表的时候创建外键约束

首先创建主表Class

create table Class(
  id int auto_increment primary key,
  name varchar(6)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

再创建字表students

create table students(
  id int auto_increment primary key,
  name varchar(6),
  class_id int,
  foreign key(class_id) references Class(id) ON UPDATE CASCADE ON DELETE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

这样就添加了外键约束,每个同学都会引用一个班级.要注意删除的时候需要先删除拥有外键约束的子表

已创建表添加外键约束

alter table 子表的数据表名 add foreign key(子表的外键名称) references 父表的数据表名称(父表的主键名称);
alter table students add foreign key(class_id) reference Class(id) ON UPDATE CASCADE ON DELETE CASCADE

相关文章

  • mysql创建外键约束

    语法: 外键约束常用的两种选项 父表更新同时更新子表,父表删除的时候如果子表不存在对应的数据删除成功,如果存在对应...

  • 2019-4-30

    一、mysql删除外键约束 1、查看创建数据库的sql语句 show create table emp 2、查看外...

  • 第5章 表的基本操作

    5.1 创建表 语法: 示例: 设置存储引擎为InnoDB,InnoDB是MySQL上提供外键约束的数据存储引擎,...

  • mysql约束

    1, mysql 不支持外键约束 ,条件约束约束分为列级约束,primary 主键约束check 条件约束for...

  • laravel 填充数据前用truncate清空有外键的表时报错

    原理就是在执行truncate之前告诉mysql取消所有外键约束检查,清空之后再恢复外键约束检查。 参见: htt...

  • MySQL外键约束

    1、概念 外键:从表中的公共字段称之为外键好处:保证数据库数据的完整性,不会存在数据丢失的情况缺点:对性能有影响,...

  • MySQL的简单学习(二)-多表查询

    外键 设置外键 如果是创建表添加外键约束,我们需要在创建表的()最后添加如下语句 FOREIGN KEY (bra...

  • mysql 学习语句

    MySQL学习笔记 登录和退出MySQL服务器 基本语法 建表约束 主键约束 唯一主键 非空约束 默认约束 外键约...

  • mysql 添加外键约束错误 1215 Cannot add t

    mysql 添加外键约束 1215 Cannot add the foreign key constraint 1...

  • SQL建表,SQLLDR导入数据,DML语句

    建表语句 创建带主键约束的表(primary key) 创建带外键约束的表(foreing key) 创建联合主键...

网友评论

    本文标题:mysql创建外键约束

    本文链接:https://www.haomeiwen.com/subject/shdtgftx.html