Я пытаюсь загрузить файл в базу данных MySQL, имея первичный ключ auto_incremented, и я бы хотел, чтобы данные обновлялись, если я нахожу любые повторяющиеся строки. Однако ключевые слова REPLACE работают только на первичный ключ, который автоматически генерируется, поэтому я застрял.
как иметь возможность иметь таблицу с идентификатором, который автоматически указывает и в то же время иметь возможность вставлять/обновлять данные из файла с помощью LOAD DATA INFILE?
Вот таблица
CREATE TABLE `oxygen_domain`.`TEST` (
`TEST_ID` int(11) NOT NULL AUTO_INCREMENT,
`NAME` varchar(255) NOT NULL,
`VALUE` varchar(255) DEFAULT NULL,
PRIMARY KEY (`TEST_ID`,`NAME`,`VALUE`)
)
и вот команда
LOAD DATA LOCAL INFILE 'C:/testData.txt'
REPLACE
INTO TABLE TEST
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(NAME, VALUE);
и вот примеры данных
ignored name, ignored value
name1,value1
name2,value2
name3,value3
Требуемый конечный результат после многократного выполнения команды с указанными выше данными
|TEST_ID |NAME |VALUE|
1, 'name1', 'value1'
2, 'name2', 'value2'
3, 'name3', 'value3'