www.1862.net > 外键列的数据可以为空吗

外键列的数据可以为空吗

数据库的外键可以为空,也可以非空,但是如果非空,则这个值必须在主表中存在.比如主表是一个班级,主键是班级id,字表是学生分配班级表,主键是学生id,外键是所在班级id.如果一个学生的外键id为空,说明这个学生还没有被分配到任何一个班级 如果一个学生的外键id非空,并且是班级表中的某个id,则说明学生分配到这个班级 如果一个学生的外键id非空,并且不属于任何班级,则数据插入肯定报错.也就是说这种情况不存在.

没有决定性的作用, 那么可以不设置. 一般外键设置在那种 严重依赖的情况下. 例如 对于 学生表, 课程表. 的主键 学号 与 课程号 在成绩表中, 这2列, 必须要在 主表里面有相应的数据. 否则, 出现 不存在的学生, 或者 不存在的课程, 都是一件很折腾得时期. 例如一个 学生日志表 (日志ID, 学号, 姓名, 修改日期) 这种, 不是严重依赖的, 那么可以不设置外键. 否则某个学生修改学号了, 还要去修改以前的全部的历史日志,是不合适的.

1.或者取空值 2.或者等于其中某个元组的主键值. 例如:职工(职工号,姓名,性别,部门号,上司,工资,佣金) 部门(部门号,名称,地点) 其中职工号是“职工”关系的主其中职工号是职工关系的主键,部门号是外键,而“部门”关系中部门号是主键,则职工关系中的每个元组的部门号属性只能取下面两类值: 第1类:空值,表示尚未给该职工分配部门; 第2类:非空值,但该值必须是部门关系中某个元组的部门号值,表示该职工不可能分配到一个不存在的部门中,即被参照关系“部门”中一定存在一个元组,它的主键值等于该参照关系“职工”中的外键值.

引用的外键那一列不能为空如果为空,你设计的数据库表就有问题 一般选一张表的主键作为另一张表的外键

外键是可以为空的.因为创建外键的时候, 是有一种 ON DELETE SET NULL的 可选择的 处理方式.这也就说明了, 那个外键, 是可以为空的, 否则怎么能够允许 ON DELETE SET NULL

不能为空.主键的设计原则:1、 主键应当是对用户没有意义的,比如说用户登陆一个系统的时候的登录id.2、 唯一性.3、 非空性:主键的值是不可重复的,也不可以为空.4、也不要更新主键.实际上,因为主键除了惟一地标识一行之外,

除非外键列指定非空,否则没有限制

除非字段设为not null

是的.外键值非空时,表示指向的主键.为空时,表明没有指向任何主键.

严格说起来,主键和外键都不能为空,外键为空的时候,数据库的参照完整性已经被破坏了

网站地图

All rights reserved Powered by www.1862.net

copyright ©right 2010-2021。
www.1862.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com