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

标签 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 值插入表“myschool.dbo.Students”的“ID”列;列不允许为空。插入失败。

最佳答案

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

ID INT IDENTITY (1,1) PRIMARY KEY

关于sql - 外主键插入(增量问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20621378/

相关文章:

mysql - 如果找到的值少于 2 个,则忽略选择

java - 读取文本文件内容并将其插入到mysql数据库中

mysql - 在MySQL中根据另一个表的内容选择 bool 值

php - 实现 Mult 的更好方法。 PHP 中 1 篇文章的类别?

sql - 如何在sql中获取某个时间范围内每个月的第一条和最后一条记录

SQL-Server XML-Bulk-Import 和读取为表数据

sql-server - Messenger 服务尚未启动 - NetSend 通知将不会发送

具有多个标题和多个计数的 sql 查询

mysql - MySql Xml函数的性能?

sql - Rails 分页 - 从实例 ID 中查找页码