将一张表的主键作为外键关联到另一张表中

  • 1、外键的介绍
  • 2、使用Navicat创建外键
  • 3、外键的维护关系设定及其选择

1、外键的介绍

设置外键的作用很明显,就是讲两个表的数据产生关联,就比如个人信息表和部门表之间,部门表的部门id就可以作为一个外键存放于个人信息表中,除此之外设定外键在父子表中的维护关系,可以达到一个类似于级联的操作,就是当父级表(主键作为外键的表)数据变化时,子表(拿着别的表的主键作为自己的外键的表)就会有相应的数据变化;


2、使用Navicat创建外键

其实只要找到外键设定的地方就可以了,很简单~,如下图:

只要按照那一列的名字选择好对应的外键表、外键列等信息即可,其中有一个比较重要的就是外键维护关系的选择,就是最后两栏~


3、外键的维护关系设定及其选择

外键的维护关系不论是外键的更新还是删除都分为四级,下面是对四级的介绍;

  • CASCADE:父表delete、update的时候,子表会delete、update掉关联记录;
  • SET NULL:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null;
  • RESTRICT:如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录;
  • NO ACTION:同 RESTRICT,也是首先先检查外键;

关于这四种维护关系的选择需要根据情况而定,比如:

  • 订单表和人员表,当用户注户后,该用户的订单信息需要被清空(至少在当前正在使用的数据库中需要被移出),那么订单表中的外键-人员id,他的维护关系就需要定为"CASCADE"级别的;

其他的情况就不一一介绍了;


《END》

将一张表的主键作为外键关联到另一张表中相关推荐

  1. oracle查询一张表的主键,Oracle查询表主键、外键

    Oracle查询表主键.外键 1. 查找表的所有索引(包括索引名,类型,构成列) select t.*,i.index_type from user_ind_columns t,user_indexe ...

  2. 聊聊数据库中的关键字——字段、属性、列、元组、记录、表、主键、外键

    学完数据库,我们对SQL SERVER 2008中的部分关键字有了大概的了解,下面我来总结一下几个比较重要的关键字:字段.属性.列.记录(元组).表.主键.外键. 一.字段:某一个事物的一个特征,或者 ...

  3. 数据库元数据数据字典查询_5_列出给定表的主键、外键约束

    列出给定表的主键.外键约束 需求描述 需求:查询出给定的表emp的外键约束信息. 解决方法:通过各个数据库里提供的与外键约束相关的数据字典进行查询. 注: 数据库数据集SQL脚本详见如下链接地址 员工 ...

  4. oracle 其他用户表主键,Oracle中查看所有的表,用户表,列名,主键,外键

    在Oracle中查看所有的表: select * from tab/dba_tables/dba_objects/cat; 看用户建立的表 : select table_name from user_ ...

  5. SQL数据库语言基础之SqlServer数据表的六大约束(主键、外键、检查、非空、唯一性、默认值约束)的创建

    文章目录 一.主键约束(primary key) 二.外键约束(foreign key) 三.检查约束(check) 四.非空约束(not null) 五.唯一性约束(unique) 六.默认值约束( ...

  6. mysql添加数据不阻塞_主键表插入数据不提交,外键表插入数据被阻塞

    有客户和我说:他在含主外键的表中实验发现,在主表数据未提交,然后在外键表插入该数据数据时,出现外键表hang住现象.我开始以为是不同的会话,根据oracle数据库的一致性原则,应该新会话在外键表中不能 ...

  7. MySQL建表,主键,外键

    1.创建表 MySql中,创建表是通过SQL语句create table实现的.语法形式如下: create table 表名( 属性名 数据类型[完整性约束条件],            属性名 数 ...

  8. SQL数据库管理系统的优化方案(表的主键、外键、索引设计)

    在基本表设计中,表的主键.外键.索引设计占有非常重要的地位,但系统设计人员往往只注重于满足用户要求,而没有从系统优化的高度来认识和重视它们.实际上,它们与系统的运行性能密切相关.现在从系统数据库优化角 ...

  9. mysql中什么是表?列?行?什么是主键和外键?什么是索引?为什么要使用索引?

    mysql中什么是表?列?行? 在关系数据库中,表(Table)是数据的主要组织单元.它是由一组命名的列和行组成,用于存储和组织数据. 列(Column)是表中的一个字段,用于存储特定类型的数据.每个 ...

最新文章

  1. spring读取配置文件的几种方式
  2. windows 10 代理服务器出现问题
  3. 实现-驼峰和下划线的转换 工具类
  4. ie,火狐下滚动条的问题
  5. AMD、CMD、CommonJs、ES6的对比
  6. 12、常见Conditional注解源码解析-ConditionalOnBean(写作中...)
  7. android九宫格忘了,九宫格密码忘了怎么办?九宫格锁屏忘记密码解决方法
  8. Aspose-words结合Freemarker实现word邮件合并功能,批量处理word模板文件
  9. 数据可视化工具的意义有哪些
  10. 关于SQL求同比、环比
  11. 同一网段两台电脑共享文件
  12. java freemarker jxl excel_freemarker导出定制excel
  13. 彩虹云仿小柯秒赞主题模板
  14. 【洛谷】P1725 琪露诺
  15. 在BRATS挑战赛中用于脑肿瘤分割、预后评估和总体生存预测的最佳机器学习算法
  16. 2022年3000元电脑最强组装 组装电脑配置推荐3000元左右
  17. 孙鑫VC++深入详解第三章学习笔记
  18. 液晶屏幕,OLED屏幕,反应时间计算,RT,ResponseTime,响应时间
  19. 一、万信金融项目——项目介绍
  20. JVM(周志明著深入了解JVM书归纳,新写一点就重新传一遍)

热门文章

  1. 第一课:路由器宽带拨号入网(小米路由器)
  2. 工作中的生长与完善——Leo鉴书86
  3. 华中科技大学 计算机 排名,计算机最强14所高校排名,清华第2,浙大第4,南大第6,华科第10...
  4. 如何解决c++文件读写流无法读取中文的问题(vc6.0)
  5. Linux服务器之间文件同步 inotify+Unison
  6. 蓝宝石rx580gpuz参数_GPU-Z公布V2.17.0版本更新 修复RX 580 2048SP核心与显存负载错误...
  7. websocketapp保活,还没吃透内存缓存LruCache实现原理的看这篇文章,看完直呼内行
  8. 315Mhz、433Mhz无线遥控信号的解码分析和模拟
  9. elementui时间选择器样式修改默认样式---修改宽度---修改日期图标
  10. 详解音频编解码的原理、演进和应用选型等