2014-02-19 26 views
-1

的解释我创建了两个表,我在一个表中设置外键,在另一个表中设置主键..当我写一个查询时,我没有得到主键值..见下面我举的例子..你可以给出的主要和外键的例子在sql

  1. employee表 - 在这里id是主键

  2. customer表 - 在这里id是外键

当我打算使用查询插入客户表中的值,我没有得到主键值..我得到空值..

看到我在第二个表中插入值查询:

insert into customer(cid, Firstname, Lastname, id) 
values(02, 'giri', 'raj', 001) 

所以,请给我解释一下....

+0

你使用了哪个数据库? –

+0

您应该为您的表提供创建语句。你有一个ID为001的员工吗?否则,你的插入将失败。 – jpstrube

+5

插入值时,您不会“获取”任何值。 – Smutje

回答

1

主键外键对于实施中的数据值的约束被存储在列。

他们不以任何方式访问任何数据库中的值(据我所知),所以无论您正在使用哪个数据库,您试图实现的目标总是失败。

你应该详细研究的概念,而是一个简短的看法是:

为什么我们创建主键

首先,我们需要一个关键唯一标识数据库表中的一行。一行可以唯一标识,可以由一个 列或一组列(组合键)唯一标识。根据 方案,您可以定义一个主键,它可以帮助您唯一标识 标识表中的行。

我们为什么需要外键

外键帮助我们在实现参照完整性 约束。指的是,当你指的是存储在其他表中的东西 ,就像你在你的例子中。我们定义 这样的约束来对某些 实体实施数据一致性(以某种方式)。例如,您有一个DEPARTMENTS表,其中存储 所有DepartmentID。现在,您希望从Employees表中创建一个外键 ,以确保没有人插入 不存在的DepartmentID,的记录,但可以插入NULL。这是你可以涉及的最简单的事情之一。

+0

好..谢谢..我现在工作的很好.. – Pranalya

+0

感谢您的解释....其实id应该是在单引号右..我给没有引号..但现在亚姆越来越.. .. – Pranalya