无法插入SQL表(列数与值错误1136不匹配)

问题描述 投票:-4回答:1

我有两个表的物种和标本。来自物种的“ speciesName”是标本中的外键

命令:

INSERT INTO Specimen 
VALUES ( (SELECT SpeciesName From Species WHERE SpeciesName='Vulpes lagopus'),105, '2017-03-02', 90,110,'Brazil');

代码:

CREATE TABLE Species (

SpeciesName varchar(25) NOT NULL,
Color varchar(25),
AvgHeight int,
Avgweight int,
PRIMARY KEY(SpeciesName)
);

CREATE TABLE Specimen (

FOREIGN KEY(SpeciesName) REFERENCES Species(SpeciesName),
ID int NOT NULL,
PRIMARY KEY(ID),
dDate date,
height int,
weight int,
location varchar(25)
);
mysql sql database computer-science rdbms
1个回答
0
投票

没有评论您的创建表语句的正确性,我可以看到您的插入语句中存在问题:

INSERT INTO Specimen 
    VALUES ( (SELECT SpeciesName From Species WHERE SpeciesName='Vulpes lagopus'),105, '2017-03-02', 90,110,'Brazil');

如果对此稍作重新排列,应​​该可以工作:

INSERT INTO Specimen 
  SELECT SpeciesName,105, '2017-03-02', 90,110,'Brazil' From Species WHERE SpeciesName='Vulpes lagopus';

以这种方式,select查询返回插入所需的所有字段。

© www.soinside.com 2019 - 2024. All rights reserved.