我将一些数据插入到以下 MySQL 表中:
CREATE TABLE genotype
(
Genotype VARCHAR(20),
Fitness FLOAT NULL,
Tally INT NULL,
PRIMARY KEY (Genotype)
)ENGINE=InnoDB;
CREATE TABLE gene
(
Gene VARCHAR(20),
E FLOAT NOT NULL,
Q2 FLOAT NOT NULL,
PRIMARY KEY (Gene)
)ENGINE=InnoDB;
CREATE TABLE genotypegene
(
Genotype VARCHAR(20),
Gene VARCHAR(20),
FOREIGN KEY (Genotype) REFERENCES genotype(Genotype),
FOREIGN KEY (Gene) REFERENCES gene(Gene)
)ENGINE=InnoDB;
我先将数据插入到 genotype/gene 中,但在尝试插入 genotypegene 时出现以下错误:
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`populationdb`.`genotypegene`, CONSTRAINT `genotypegene_ibfk_2` FOREIGN KEY (`Gene`) REFERENCES `gene` (`Gene`))
我要插入的数据是:Genotype1,Gene1 Genotype1,Gene2 Genotype1,Gene3 Genotype1,Gene4
基因型表中有一个Genotype1的副本,想法是每个基因型可以包含许多基因,但每个基因可以存在多个基因型(目前只有1个基因型,但稍后我会插入更多)。我在这里读到我可以关闭外键检查,但我不愿意在不知道此错误原因的情况下这样做。这是因为基因型表中只有一个 Genotype1 副本吗?(我检查了 Genotype1、Gene1 等在其主键表中的格式/拼写相同)。
以防万一,这是我用来插入数据的代码:
mysql> LOAD DATA LOCAL INFILE 'C:\\.....genotypegene.csv'
-> INTO TABLE genotypegene
-> FIELDS TERMINATED BY ','
-> (Genotype, Gene);
谢谢