我正在創建 3 個表(1 個父表和 2 個子表)并嘗試設定外鍵,但出現此錯誤:
參考表中沒有主鍵或候選鍵。
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
);
uj5u.com熱心網友回復:
正如@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)
);
您可能需要考慮將索引放在 WEATHER_FORECASTS 表中的這兩個外鍵上以提高性能。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/370175.html
標籤:sql sql-server 查询语句
