如何将主值(PK)插入相关表(FK)

时间:2013-02-25 07:03:38

标签: sql vb.net sql-server-2008-r2

我将TABLE的1个主要值(增量)插入另一个TABLE(外键)时出现问题

表1中有学生编号的主键;如果我输入表1中的姓氏和名字的值,那么学生编号将因为增量而自动给出它自己的值,否则如果我从表2中输入,我希望表格中的学生编号的值将增加甚至值如果表1为NULL,则为Last和First名称

表1

<小时/>

(PK)学生_# Last_Name |将First_Name

........... 1 ........... | ........一个.......... | ... ....... b .......

........... 2 ........... | ........ç.......... | ... ....... b .......

表2

<小时/>

(FK)学生_# Year_Level |节

........... NULL ................ | ..........第二年...... | ..... C1 .........

........... NULL ................ | ..........第3年...... | ..... D1 .........

所需


(FK)学生_# Year_Level |节

.............. 1 ................... | ..........第二年...... | ..... C1 .........

.............. 2 ................... | ..........第3年...... | ...... D1 .........

1 个答案:

答案 0 :(得分:0)

在我看来,你需要一个带有table2身份种子的主键,还需要一个学生表的外键:

(PK/Identity) Table2ID | (FK)Student_# | Year_Level | Section

这样,您可以在将记录插入表2时插入student_#,并且还能够为table2中的每一行提供唯一标识符

CREATE TABLE Table2
(
 Table2ID INT IDENTITY(1,1) PRIMARY KEY
,Student_# INT NOT NULL FOREIGN KEY REFERENCES Table1(Student_#)
,Year_Level NVARCHAR(255) --Use whatever data type you need
,Section NVARCHAR(255) --Use whatever data type you need
)

我假设你正在使用sql server,因为你没有在你的问题中指定。您可能需要为其他RDBMS更改此查询。