外键主键插入(增量问题)

时间:2013-12-16 21:34:39

标签: sql sql-server database

CREATE TABLE Accounts
(ID INTEGER IDENTITY(1,1) PRIMARY KEY);


CREATE TABLE Students
( ID INTEGER PRIMARY KEY , s_name VARCHAR(20) ,date_birth DATEtime,age AS (YEAR(CURRENT_TIMESTAMP) - YEAR(date_birth)) , school_id INTEGER ,
FOREIGN KEY(ID) REFERENCES Accounts(ID) ,
FOREIGN KEY(school_id) REFERENCES Schools(ID)
 );

当我插入一名学生时:

INSERT INTO Students (s_name , date_birth , school_id )
VALUES ( 'nada' , 2/2/1993 , 1)

发生错误: 无法将值NULL插入列'ID',表'myschool.dbo.Students';列不允许空值。 INSERT失败。

2 个答案:

答案 0 :(得分:1)

您没有为Students.ID列指定值。您可能希望将其设置为标识,与您为Account.ID列所做的相同:

ID INT IDENTITY (1,1) PRIMARY KEY

答案 1 :(得分:1)

在添加Student之前,您需要从表格ID中找到Student的{​​{1}}。

由于Accounts引用Student,因此在添加Accounts记录之前,这些记录必须已存在Account记录,因此您可能需要先添加帐户记录第一