我创建了两个表,并在一个表中设置了外键,在另一个表中设置了主键..当我编写查询时,我没有获得主键值..请参阅下面的示例..
employee
表格 - 此处id
是主键
customer
表 - 此处id
是外键
当我要使用查询在customer表中插入一个值时,我没有得到主键值..我得到空值..
请参阅我在第二个表中插入值的查询:
insert into customer(cid, Firstname, Lastname, id)
values(02, 'giri', 'raj', 001)
所以请解释一下......
答案 0 :(得分:1)
主键和外键用于对存储在列中的数据值实施约束。
他们不会在任何数据库中以任何方式访问这些值(据我所知),所以无论你在哪个数据库工作,你想要实现的目标总是会失败。
你应该详细研究这些概念,但简短的说法是:
我们为什么要创建主键
首先,我们需要一个 键 来唯一标识一行中的一行 数据表。可以通过单个唯一标识行 列,或一组列(复合键)。基于 方案,您定义了一个主键,它可以独一无二地帮助您 识别表格中的行。
为什么我们需要外键
外键帮助我们实现 参照完整性 约束 即可。参考,意味着你指的是什么 存储在其他表中,就像您在示例中一样。我们定义 这样的约束来强制执行数据一致性(在某种程度上) 实体。例如,您有一个
DEPARTMENTS
表,用于存储 所有部门ID。现在,您更愿意创建外键 从您的Employees表中,以确保没有人插入记录 不存在的DepartmentID,但您可以插入NULL 。这是其中之一 你能说的最简单的事情。