【发布时间】:2009-12-16 11:09:17
【问题描述】:
我正在尝试创建一个由 int 列和 datetime 列(均非空)组成的外键约束。
我收到了错误 “被引用的表 X 中没有与外键 FK 中的引用列列表匹配的主键或候选键”。
通常,此错误意味着目标表中的列不是唯一的。 但是它是主键,所以它绝对是唯一的。
外键引用的表跨多个文件组进行分区 - 而创建外键的表位于主文件组上。这可能是问题吗? 日期时间可以是外键的一部分吗?
表 X:
LineId (int not null) (PK)
CreatedAt (datetime not null) (PK)
Message (nvarchar(max))
userId (int not null)
表 Y:
LineId (int not null) (PK) (FK)
SId (int not null) (PK)
LineCreatedAt (datetime not null) (FK)
CreatedAt (datetime not null)
SQL 命令:
ALTER TABLE Y
ADD CONSTRAINT [FK1]
FOREIGN KEY(LineId,LineCreatedAt)
REFERENCES X(LineId, CreatedAt)
任何想法表示赞赏。
谢谢
【问题讨论】:
-
可以向我们展示您的表架构吗?
-
我想知道是不是因为表 X 的索引在分区方案上,而表 Y 不是?