我對 SQL 很陌生,無法理解此錯誤:違反 UNIQUE KEY 約束“UQ__Flight_L__5DD08D7924EB8625”。無法在物件“dbo.Flight_Leg”中插入重復鍵。重復鍵值為 (WN380)
Create Table Flight_Leg(
Leg_number int not null,
Departure_airport_code varchar(3),
Scheduled_departure_time varchar(6),
Arrival_airport_code varchar(3),
Scheduled_arrival_time varchar(6),
/*The maximum number of flight legs(Leg_number in the FLIGHT_LEG) cannot exceed 4*/
CHECK (Leg_number<=4),
Flight_number varchar(255) not null UNIQUE FOREIGN KEY REFERENCES Flight(Flight_number),
PRIMARY KEY (Leg_number,Flight_number),
);
INSERT INTO Flight_leg(Flight_number, Leg_number, Departure_airport_code, Scheduled_departure_time, Arrival_airport_code, Scheduled_arrival_time)
VALUES ('G4155', 1, 'SCK', '531PM', 'IWA', '814PM'),
('G4154', 1, 'IWA', '406PM', 'SCK', '451PM'),
('DL5841', 1, 'OAK', '1240PM', 'LAX', '200PM'),
('DL1149',1,'LAX','645PM', 'HNL', '1043PM'),
('HA48', 1, 'HNL', '215PM', 'OAK', '930PM'),
('AA1522', 1, 'SFO', '1159PM', 'ORD', '604AM'),
('AA3472', 1,'ORD', '719AM', 'MSN', '819AM'),
('WN380', 1,'MDW', '755AM', 'ONT', '1010AM'),
('WN380', 2, 'ONT', '1045AM', 'SMF', '1145AM'),
('B6624', 1, 'LAX', '915PM', 'JFK', '522AM');
在我的腦海中,我在 flight_leg 中創建了一個復合鍵,所以 WN380 的重復值不應該產生這個錯誤嗎?先感謝您!
uj5u.com熱心網友回復:
您對 Flight 有唯一的約束,這不起作用
UNIQUE FOREIGN KEY REFERENCES Flight(Flight_number)
所以,無論你的主索引是什么,你都不能插入兩個相同的 Flight_Legs
制作一個普通的非唯一鍵參考,它將起作用:
Flight_number varchar(255) not null FOREIGN KEY REFERENCES Flight(Flight_number),
在您的 Flight Table 中,鍵可以是 UNIQE
最好的祝福
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/447887.html
上一篇:根據資料型別將列拆分為行
下一篇:SQL試圖用*替換中間字符
