Я вставляю некоторые данные в следующие таблицы 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;
Сначала я вставил данные в генотип / ген, но получаю следующую ошибку при попытке вставить в генотип:
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`))
Данные, которые я вставляю, в эту таблицу: Генотип1, Ген1, Генотип1, Ген2, Генотип1, Ген3, Генотип1, Ген4
В таблице генотипов есть одна копия Генотипа1, идея в том, что каждыйгенотип может содержать много генов, но каждый ген может существовать в нескольких генотипах (на данный момент существует только 1 генотип, но позже я добавлю больше).Я прочитал здесь , что я могу отключить проверку внешнего ключа, но я не хочу этого делать, не зная причину этой ошибки.Это потому, что в таблице генотипов есть только одна копия Genotype1?(Я проверил, что Genotype1, Gene1 и т. Д. Имеют одинаковый формат / орфографию в своих таблицах первичных ключей).
На всякий случай, вот код, который я использую для вставки данных:
mysql> LOAD DATA LOCAL INFILE 'C:\\.....genotypegene.csv'
-> INTO TABLE genotypegene
-> FIELDS TERMINATED BY ','
-> (Genotype, Gene);
Спасибо