2014-05-23 151 views
0

我试图插入到我的表中。球队插入正确,但然后我想插入他们的队颜色。但是,在此INSERT INTO下,只添加第一种颜色。然后我得到第二个错误。我如何告诉MySQL为第二个团队添加颜色等等?基本插入表mysql mysql

有更多的代码,SQL,但是我想尽量简短

CREATE TABLE team 
(
    team_id int NOT NULL AUTO_INCREMENT, 
    team varchar(255) NOT NULL, 
    conference varchar(255) NOT NULL, 
    division varchar(255) NOT NULL, 
    CONSTRAINT teamer FOREIGN KEY (team_id) REFERENCES player (team), 
    PRIMARY KEY (team) 
); 

CREATE TABLE color 
(
    team varchar(255) NOT NULL, 
    primary_color varchar(255) NOT NULL, 
    secondary_color varchar(255) NOT NULL, 
    CONSTRAINT colorer FOREIGN KEY (team) REFERENCES team (team), 
    PRIMARY KEY (team) 
); 


-- INSERT 
-- team 
INSERT INTO team (team, conference, division) 
VALUES ('SEA', 'NFC', 'N_WEST'); 

INSERT INTO team (team, conference, division) 
VALUES ('ARI', 'NFC', 'N_WEST'); 

INSERT INTO team (team, conference, division) 
VALUES ('SFO', 'NFC', 'N_WEST'); 

INSERT INTO team (team, conference, division) 
VALUES ('STL', 'NFC', 'N_WEST'); 


-- INSERT 
-- color 
INSERT INTO color (primary_color, secondary_color) 
VALUES ('Navy', 'Grey'); 

INSERT INTO color (primary_color, secondary_color) 
VALUES ('Red', 'White'); 

INSERT INTO color (primary_color, secondary_color) 
VALUES ('Red', 'Gold'); 

INSERT INTO color (primary_color, secondary_color) 
VALUES ('Navy', 'Gold'); 
+1

你什么错误? – Barmar

+0

“SQL查询: INSERT INTO颜色(primary_color,secondary_color) VALUES( '红色', '白色' ); MySQL说:文档 #1062 - 重复条目''的关键'PRIMARY'' – user3670475

+0

看到我的答案,我已经明白了。 – Barmar

回答

1

color表您指定team是主键。这意味着每行都必须有所不同。但是你没有在你的INSERT声明中指定团队,所以它使用默认值,即空字符串。这会导致所有插入尝试使用同一个团队。由于团队必须是唯一的,因为尝试创建副本,所以会出现错误。

你需要指定一个有效的队名中插入颜色时:

INSERT INTO colors (team, primary_color, secondary_color) 
VALUES ('SEA', 'Navy', 'Grey'); 

INSERT INTO color (team, primary_color, secondary_color) 
VALUES ('ARI', 'Red', 'White');