我知道这个问题已经问过好几次了,我已经阅读了所有答复,但仍然无法弄清楚。我有这些表,当我尝试创建它们时,出现上述错误。当我消除Userinfo表中的键之一时,代码可以正常工作,但是当我将其设为复合键时,代码却无法正常工作。我希望有人可以帮助我,我是SQL的新手。
df <- structure(list(Jun = 2616.54, Jul = 2616.363, Aug = 2388.369),
.Names = c("Jun",
"Jul", "Aug"), class = "data.frame", row.names = "1")
答案 0 :(得分:0)
您的数据结构应如下所示:
CREATE TABLE [dbo].[UserInfo] (
[UserId] int NOT NULL IDENTITY (1, 1) PRIMARY KEY,
[strEmail] varchar(100) NOT NULL,
[strLastName] varchar(50) NOT NULL DEFAULT 'N/A',
[strFirstName] varchar(50) NOT NULL DEFAULT 'N/A',
[strMiddleInitial] varchar(5) NOT NULL DEFAULT 'N/A',
[strDSNPhone] varchar(10) NOT NULL DEFAULT 'N/A',
[dCreationDate] date NOT NULL DEFAULT '1900-01-01',
[dDD2875Approved] date NOT NULL DEFAULT '1900-01-01',
[dDD2875Expires] date NOT NULL DEFAULT '1900-01-01',
);
CREATE TABLE [dbo].[Files] (
[FileID] bigint NOT NULL IDENTITY (1, 1),
[strFileName] varchar(200) NULL,
[strFilePath] varchar(400) NULL,
[strFileDescription] varchar(200) NULL,
[UserId] int NOT NULL REFERENCES user_info(UserId),
[strEmail] varchar(100) NOT NULL
);
注意:
identity
列时,就不需要复合主键。strEmail
之类的信息。您可以使用JOIN
进行查找。NULL
的厌恶程度在UserInfo
表中,但是大概您有充分的理由使用这种默认设置。答案 1 :(得分:0)
[UserId] int NOT NULL IDENTITY (1, 1)
是唯一的。
将[strEmail] ASC
添加到主键不会增加任何值。
在外键中添加[strEmail]
不会增加任何值。
[strEmail]
不应位于Files
表中。