我在创建一个简单的连接表(关联表等,无论你喜欢什么)时遇到问题。
这些是测试表,所以没有太多内容。
第一个表是
CREATE TABLE dbo.CareerField(
CareerFieldID int IDENTITY(1,1) NOT NULL,
CareerFieldName varchar(100) NOT NULL
)
第二张表是
CREATE TABLE dbo.Cluster(
ClusterID int IDENTITY(1,1) NOT NULL,
ClusterName varchar(100) NOT NULL
)
创建多对多关系的第三个表(连接表)是
CREATE TABLE dbo.CareerField_Cluster(
CareerFieldID int NOT NULL,
ClusterID int NOT NULL
)
我正在尝试使用以下方法在第三个表中设置外键
ALTER TABLE dbo.CareerField_Cluster
ADD CONSTRAINT FK_CareerField_Cluster_CareerFieldID
FOREIGN KEY(CareerFieldID) REFERENCES dbo.CareerField(CareerFieldID)
ALTER TABLE dbo.CareerField_Cluster
ADD CONSTRAINT FK_CareerField_Cluster_ClusterID
FOREIGN KEY(ClusterID) REFERENCES dbo.Cluster(ClusterID)
但是,我不断收到错误消息
消息 1776,级别 16,状态 0,行 1 引用表 'dbo.CareerField' 中没有与外键 'FK_CareerField_Cluster_CareerFieldID' 中的引用列列表匹配的主键或候选键。消息 1750,级别 16,状态 0,行 1 无法创建约束。请参阅以前的错误。
我尝试将这两个字段设置为主键,但它不允许我在创建键时选择单独的表 - 我不能选择 CareerFieldID 来引用 CareerField 表,然后选择 ClusterID 来引用集群表。
我没有遇到过 MySQL 的这个问题,而且我是 SQL Server 的新手。任何帮助深表感谢。