我正在尝试使用以下架构在microsoft sql server 2012中创建外键约束:
CREATE TABLE Period
(
Period_ID int IDENTITY(1,1) NOT NULL PRIMARY KEY,
Training_History_Start_Period datetime NULL,
Training_History_End_Period datetime NULL,
Training_Target_Start_Period datetime NULL,
Training_Target_End_Period datetime NULL,
Scoring_History_Start_Period datetime NULL,
Scoring_History_End_Period datetime NULL,
Scoring_Target_Start_Period datetime NULL,
Scoring_Target_End_Period datetime NULL
);
CREATE TABLE RiskScore
(
Period_ID int FOREIGN KEY REFERENCES Period(Period_ID),
Driver_ID int NULL,
Risk_Score numeric(10,5) NULL,
Run_on datetime NULL
);
在将数据插入数据库时,期间表采用所需数据但RiskScore表采用Period_ID列。此列未从Period表中获取Period_ID。
有人帮助我。
提前致谢。
答案 0 :(得分:0)
外键:定义
外键是一种在SQL Server数据库中强制引用完整性的方法。外键意味着一个表中的值也必须出现在另一个表中。引用的表称为父表,而具有外键的表称为子表。
在你的情况下,
期间是您的父表,RiskScore是您的子表。
外键强制引用完整性,但它不会将数据从父表引入子表。您应该手动将值填充到子表中。假设子表中的给定值在父表中不存在,那么您将收到错误消息。