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失败。
答案 0 :(得分:1)
您没有为Students.ID列指定值。您可能希望将其设置为标识,与您为Account.ID列所做的相同:
ID INT IDENTITY (1,1) PRIMARY KEY
答案 1 :(得分:1)
在添加Student
之前,您需要从表格ID
中找到Student
的{{1}}。
由于Accounts
引用Student
,因此在添加Accounts
记录之前,这些记录必须已存在Account
记录,因此您可能需要先添加帐户记录第一