【问题标题】:How to Insert Primary Value (PK) to Related Table (FK)如何将主值 (PK) 插入相关表 (FK)
【发布时间】:2013-02-25 07:03:37
【问题描述】:

我在将 TABLE 的 1 个主值(增量)插入另一个 TABLE(外键)时遇到问题

表1有学号的主键;如果我从表 1 中输入姓氏和名字的值,那么由于增量,学号将自动给出它自己的值,否则如果我从表 2 输入,我想要表中的学号的值,我将增加甚至值如果表 1 为 NULL,则姓氏和名字的名称

表 1


(PK)学生_# |姓氏 |名字

…………1…………|…………a………………|…… .......b.......

…………2…………|…………c………………|…… .......b.......

表 2


(FK)学生_# |年级 |部分

.............空......|............第二年...... |.....C1 .........

.............空......|............第三年...... |.....D1 ......

需要


(FK)学生_# |年级 |部分

.......................1........|........第 2 年......|.....C1 ......

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

【问题讨论】:

  • 这有点令人困惑...您希望在表 1 和表 2 中都自动递增,然后为什么要提供 pk/fk ???
  • 看起来您的另一个问题将作为重复而关闭。但是以后,如果您想更改您的问题,请使用edit 链接。不要发布新的问题。

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


【解决方案1】:

在我看来,您需要一个在 table2 上具有标识种子的主键以及一个学生表的外键:

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

这样,您可以在将记录插入表 2 时插入 student_#,还可以为表 2 中的每一行赋予唯一标识符

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 更改此查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多