数据库外键可以为空

数据库外键可以为空一 nbsp nbsp 关于数据库的外键 以前我一直以为不允许为空的 今天看到一个项目中使用了空的数据库外键 很惊讶 后来才发现是自己以前错误了 数据库外键是可以为空的 不过为空的数据跟与之相关联的表就没有关系了 一般不采用 二 nbsp nbsp 按照数据库理论上说的应该是外键可以为空 为空表示其值还没有确定 如果不为空 刚必须为主键相同 举个例子 有两张表 系信息表 学生信息表 学生信息表

一、

    关于数据库的外键,以前我一直以为不允许为空的,今天看到一个项目中使用了空的数据库外键,很惊讶,后来才发现是自己以前错误了。数据库外键是可以为空的。

不过为空的数据跟与之相关联的表就没有关系了。一般不采用。

二、

    按照数据库理论上说的应该是外键可以为空,为空表示其值还没有确定;如果不为空,刚必须为主键相同。举个例子:有两张表,系信息表,学生信息表,学生信息表中的系号为外键,此时外键可以为空,表示该学生还没有确定所在的系;如果系号不为空则系号必须在系信息表中存在!
外键不能为空只是SQLSERVER等一些数据库系统的特殊规则而已!

三、

    外键可以为空的,一个表的关键的标识是主键,外键是否为空不影响表的结构及数据库设计概念的.外键只起个关联表的作用.
至于书上提到的外键不能为空是对的,但实践中在数据库里没有创建关联时,好像是外键,实则不是外键.

    虽然定义了关系
但是属于未强制关系,这种关系的外键约束被禁用。所以楼主定义无实际意义。所以可以插入null数据

    外键的值不允许参照相应主表中不存在的主键值,或者外键为空值.
不知道楼主怎么理解的这句话,我理解为外键可以为空
外键的值或者参照相应主表中存在的主键值,或者外键为空值

四、

    联机丛书中准确的解释是

如果在 FOREIGN KEY 约束的列中输入非 NULL 值,则此值必须在被引用的列中存在,否则将返回违反外键约束的错误信息。

    也就是说外键中可以有null,除非外键列定义了not null

五、

    外键当然可以为空了
    看看你引用的书上的话
    “外键的值不允许参照相应主表中不存在的主键值,或者外键为空值. ”
    后面不是说了 “或者外键为空值 “,不就是说外键可以为空的吗
    外键要有值的话必须是主表中存在的主键值,可不就是空值

    外键可以为空值,但如果有值的话一定是你参照的那个主表中的主键值.






































版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215327.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午2:10
下一篇 2026年3月18日 下午2:10


相关推荐

  • 银河麒麟安装windows虚拟机_中标麒麟安装vmtools

    银河麒麟安装windows虚拟机_中标麒麟安装vmtools下载系统:http://download.cs2c.com.cn/neokylin/desktop/releases/6.0/x86_64/iso/安装系统:1.新建虚拟机,选择典型,下一步2.稍后安装操作系统,下一步3.选择Linux系统版本为其他Linux3.x内核,下一步4.设置磁盘大小为…

    2022年8月10日
    109
  • tomcat日志详解[通俗易懂]

    tomcat日志详解[通俗易懂]文章目录tomcat日志配置tomcat日志文件详解catalina.outcatalina.YYYY-MM-DD.loglocalhost.YYYY-MM-DD.loglocalhost_access_log.YYYY-MM-DD.txthost-manager.YYYY-MM-DD.logmanager.YYYY-MM-DD.log访问日志详细配置tomcat日志文件切割tomcat日志配…

    2022年6月20日
    44
  • ARM集成开发环境IDE

    ARM集成开发环境IDEARM集成开发环境IDE  2009-08-0411:28:00|  分类: 32位MCU|举报|字号 订阅      下载LOFTER我的照片书  |1、RealViewMicrocontrollerDevelopmentKit(RealVi

    2022年5月22日
    51
  • vue动态生成表单_vue element 表单验证

    vue动态生成表单_vue element 表单验证前几天接了一个需求,需要动态生成一个表单数据,然后提交,提交完数据后。通过编辑按钮进入时,需要进行数据回填。没生成表单前的状态单机生成表单生成表单根据选择方式展示不同的表单元素如果从编辑页进入该页面有数据的话,进行数据回填样式同第三点相似,这里不再说明思路:请输入标题,请选择类型为父组件;请选择方式为子组件;根据请选择方式出来的内容为孙子组件难…

    2025年6月11日
    5
  • 什么是404页面,如何正确设置制作404页面

    什么是404页面,如何正确设置制作404页面
    什么是404页面?
      404网页是用户尝试访问网站不存在的网页(由于用户点击了损坏的链接、网页已被删除或用户输入了错误的网址)时看到的页面。之所以称为404网页,是因为针对丢失网页的请求,网络服务器会返回404HTTP状态代码,表明该网页未找到。
    404页面的目的是:告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面而不是关闭窗口离开。
    404对搜索引擎优化seo的影响
      搜索引擎通过HTTP状态码来识别网页的状态。当

    2022年7月27日
    14
  • 《Python程序设计与算法基础教程(第二版)》江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究「建议收藏」

    《Python程序设计与算法基础教程(第二版)》江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究「建议收藏」1.这本书对Python的知识点的描述很详细,而且排版看的很舒服.2.几个例题:假装自己从零开始学,将一些有代表性、有意思的例题抽取出来.3.还有自己对一部分课后复习题,全部课后上机实践题的解题思路

    2022年8月26日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号