我有两个表的物种和标本。来自物种的“ 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)
);
没有评论您的创建表语句的正确性,我可以看到您的插入语句中存在问题:
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查询返回插入所需的所有字段。