如何解决我可以在数据库表中自动增加外键列,使其与SQL Server中主表的自动增加主键列相匹配吗?
为我的第一个表创建语句:'users':
CREATE TABLE users
(
uid INT NOT NULL IDENTITY PRIMARY KEY,firstName VARCHAR(50) NOT NULL,lastName VARCHAR(50) NOT NULL,middle VARCHAR(50) NOT NULL,ssn VARCHAR(12) NOT NULL,dob DATE NOT NULL,phone VARCHAR(10) NOT NULL,email VARCHAR(255) NOT NULL
)
为第二个表创建语句:“ ds”:
CREATE TABLE ds
(
dsu VARCHAR(50) NOT NULL,dsp VARCHAR(50) NOT NULL,dsImage VARCHAR(50) NOT NULL,dsid INT NOT NULL,Name nvarchar(50),CONSTRAINT PK_dsid
PRIMARY KEY NONCLUSTERED (dsid),CONSTRAINT FK_users_uid
FOREIGN KEY (dsid) REFERENCES users (uid)
ON DELETE CASCADE
ON UPDATE CASCADE
);
第一个表的uid
列将随着我插入的每个新行而自动递增。我想在每个新行中设置ds
表的dsid
列值,以自动更新以匹配users
表uid
列值。
当我尝试将INSERT INTO
的值放入ds
表中时:
INSERT INTO ds (dsu,dsp,dsImage)
VALUES ('john.smith','1234567','Tiger')
我收到以下错误:
515消息,第16级,状态2,第1行
无法将值NULL插入表'company.dbo.ds'的列'dsid'中;列不允许为空。 INSERT失败。
因此,我试图找出是否正确设置了主键和外键create语句以实现所需的结果,以及为什么会出现错误以及什至接近正确完成此任务/问题。
非常感谢您的帮助,谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。