简体   繁体   English

MSSQL 引用的表中没有主键或候选键

[英]MSSQL There are no primary or candidate keys in the referenced table

I'm creating 3 tables (1 parent and 2 child) and trying to set foreign keys but I'm getting this error:我正在创建 3 个表(1 个父表和 2 个子表)并尝试设置外键,但出现此错误:

There are no primary or candidate keys in the referenced table.引用的表中没有主键或候选键。

CREATE TABLE WEATHER_FORECASTS(
    WEATHER_ID tinyint NOT NULL,
    TOWN_ID char(2) NOT NULL,
    PRIMARY KEY(WEATHER_ID, TOWN_ID)
);

CREATE TABLE WEATHER(
    WEATHER_ID tinyint NOT NULL REFERENCES WEATHER_FORECASTS(WEATHER_ID),
    WEATHER_TYPE varchar(20) NOT NULL
    PRIMARY KEY(WEATHER_ID)
);

CREATE TABLE TOWNS(
    TOWN_ID char(2) NOT NULL REFERENCES WEATHER_FORECASTS(TOWN_ID),
    TOWN_NAME varchar(20) NOT NULL
);

As @Sticky Bit says you have the Foreign Key the wrong way round, you should have two foreign keys in the weather_forecasts table referencing the tables weather & towns:正如@Sticky Bit 所说,您的外键方向错误,您应该在 weather_forecasts 表中有两个外键,引用表天气和城镇:

CREATE TABLE TOWNS(
    TOWN_ID char(2) NOT NULL,
    TOWN_NAME varchar(20) NOT NULL,
    PRIMARY KEY(TOWN_ID)
);

CREATE TABLE WEATHER(
    WEATHER_ID tinyint NOT NULL,
    WEATHER_TYPE varchar(20) NOT NULL
    PRIMARY KEY(WEATHER_ID)
);

CREATE TABLE WEATHER_FORECASTS(
    WEATHER_ID tinyint NOT NULL REFERENCES WEATHER(WEATHER_ID),
    TOWN_ID char(2) NOT NULL REFERENCES TOWNS(TOWN_ID),
    PRIMARY KEY(WEATHER_ID, TOWN_ID)
);

You may want to consider putting Indexes on those two foreign keys in the WEATHER_FORECASTS table to enhance performance.您可能需要考虑将索引放在 WEATHER_FORECASTS 表中的这两个外键上以提高性能。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 引用的表中没有主键或候选键 - There are no Primary or Candidate Keys in the referenced table 引用表错误中没有主键或候选键 - There are no primary or candidate keys in the referenced table error EntityFramework-引用的表中没有主键或候选键 - EntityFramework - There are no primary or candidate keys in the referenced table SQL 查询 - 引用表中没有主键或候选 > 键 - SQL queries - There are no primary or candidate > keys in the referenced table SQL错误:“引用的表中没有主键或候选键...” - SQL ERROR : “There are no primary or candidate keys in the referenced table…” SQL Server:引用的表中没有主键或候选键 - SQL Server : there are no primary or candidate keys in the referenced table 引用的表'Tabs'中没有主键或候选键 - There are no primary or candidate keys in the referenced table 'Tabs' 错误引用的表中没有主键或候选键 - Error There are no primary or candidate keys in the referenced table SQL Server表创建错误:引用中没有主键或候选键 - SQL Server table creation error : There are no primary or candidate keys in the referenced 引用表“factIngresosCurso”中没有与引用列匹配的主键或候选键 - There are no primary or candidate keys in the referenced table 'factIngresosCurso' that match the referencing column
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM