美文网首页
mysql 外键约束(转载)

mysql 外键约束(转载)

作者: 魏魏魏_1500 | 来源:发表于2020-02-23 17:54 被阅读0次

【附:MYSQL中文指南 http://c.biancheng.net/view/2441.html

原文链接:https://www.cnblogs.com/whylinux/p/9905134.html

mysql之外键约束

1.什么是外键

  A表的主键,在B表中字段出现,就是外键。

2.什么是约束:约束是一种限制,它通过对表的行货列的数据做出限制,来确保表的数据的完整性、唯一性。比如人员表中有一列是部门id,当新增一个人员的时候,我们不需要手动的在部门id字段给这个人员设置一个部门,而是新增则个新人员记录的时候默认就会有一个部门id给了这个人员,这就是约束。

3.以上1和2结合一起就是外键约束。即:foreign key

4.具体操作

4.1创建表时,同时创建外键约束

4.2已创建表后,追加外键约束

(1)添加外键方法

-- CONSTRAINT 就是创建外键约束 fk_id是外键约束的名字-- foreign key (dept_id) references dept(did)意思是设置person表中的dept_id字段和dept表中的did字段关联,dept表中的did字段就是person表中的dept_id的外键约束,这个外键约束的名字叫做fk_id,一般潜规则外键约束的名字开头是fk_altertablepersonaddCONSTRAINTfk_idforeignkey(dept_id)REFERENCESdept(did);

此时可以发现在person表中的,点击外键按钮,可以看到创建出来的外键

栏位表示的是person表中的dept_id字段,参考栏位的did就是person表中的dept_id字段的约束,dept_id字段的值被约束为dept字段did字段的值

  主表就是外键约束有约束值的那个表

从表就是被约束的那个表

(2)外键约束的4种类型,RESTRICT、NO ACTION、CASCADE、SET NULL主要针对于外键里的删除时和更新时

RESTRICT(约束):如果出现在删除时,意思是约束外键主键did记录(主表中的记录)不能直接删除,必须先删除被约束的表(从表)字段中dept_id所有这个外键主键值对应的记录,才能删除外键约束(主表中的记录)

NO ACTION:

CASCADE:删除选择这个时,删除主表中的记录时,主表中的这个主键id关联的从表的这个id值所在的记录也会被删除。建议不选。

SET NULL :删除选择这个时,如果从表(被约束的字段所在的表中)被约束的字段的值设置为可以为空时,那么当删除主表的记录时,主表中被删除的这个记录对应的主键值(约束从表字段的那个值)在从表中对应的字段中出现的那个记录的被约束字段的值就会变为NULL。

最常用的是选择RESTRICT不让删的这个约束、或者选择SET NULL删除后值表为空。

目前公司都不太喜欢使用这种真实的外键约束,而是使用虚拟的外键约束。虚拟外键约束:就是人员表中的部门id字段中的id值是部门表中的主键id的值,这就是虚拟外键约束,也是目前来说比较流行使用的。

(3)删除外键

-- 删除外键约束altertablepersonDROPforeignkeyfk_id;

5.其他约束类型

-- 向t5表中插入两条记录,第二值用的都是默认值,如果是默认值则可以不填或填defaultinsertintot5values(3,DEFAULT), (4,DEFAULT);

相关文章

  • mysql 外键约束(转载)

    【附:MYSQL中文指南 http://c.biancheng.net/view/2441.html】 原文链接:...

  • mysql约束

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

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

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

  • MySQL外键约束

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

  • mysql 学习语句

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

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

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

  • 设置外键,外键约束值的区别

    laravel 设置外键,并设置外键约束的方式 为联级删除 更新:在使用Navicat for mysql设计表时...

  • mysql 约束

    mysql 中常见的约束: 默认约束 非空约束 主键约束 唯一约束 外键约束 自增长约束 顾命思议,主要讲几个容易...

  • mysql创建外键约束

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

  • mysql-外键约束

    创建外键 表的结构已经建好,如何修改为外键 create table dep (id int primary ke...

网友评论

      本文标题:mysql 外键约束(转载)

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