Я использую этот оператор LOAD DATA LOCAL INFILE для быстрой загрузки файлов.
LOAD DATA LOCAL INFILE 'file_location/file.txt'
INTO TABLE mytable
FIELDS TERMINATED by '\t'
LINES TERMINATED BY '\n'
IGNORE 18 LINES //ignore some header info
(sampleID, testID);
Но есть некоторые файлы, которые я уже загружал в прошлом, и я хочу избежать дублирования.
Структура базы данных включает автоинкрементный PK в качестве дополнительного столбца.
Без необходимости открывать каждый файл и выполнять поиск перед загрузкой, чтобы определить, существуют ли эти записи, есть ли способ изменить команду, которую я использую, чтобы игнорировать дублирующиеся строки, основываясь на наличии как строк sampleID, так и testID в таблице сопоставляется с входящим файлом?
Например, предположим, что текущая таблица имеет следующие строки:
tablePKID sampleID testID
0 0001 A
1 0001 B
2 0003 A
3 0003 B
И я хочу импортировать файл со следующими записями
0001 A
0001 B
0001 C
0005 A
0005 B
Как я могу обеспечить только
0001 C
0005 A
0005 B
импортируются?