У меня есть файл CSV, который имеет десять столбцов:
ID, fromDate, endDate, адрес, цена1, цена2, столбец1, столбец2, столбец3, столбец4
но я просто хочу вставить первые шесть столбцов в базу данных MySQL, и самое главное, если в базе данных есть кортеж, что атрибут (ID, fromDate, endDate, address) одинаков, мы определили, что две строки идентифицировать.
например:
в базе данных существует кортеж:
(1000, 2014-11-21, 2014-11-23, Нью-Йорк, 100, 200)
и теперь в файле CSV существует строка:
(1000, 2014-11-21, 2014-11-23, Нью-Йорк, 150, 250)
Мы определили, что два кортежа одинаковы. Поэтому теперь мы должны обновить данные в базе данных новыми данными в файле CSV.
что означает, удалить кортеж
(1000, 2014-11-21, 2014-11-23, Нью-Йорк, 100, 200)
и вставьте новый кортеж:
(1000, 2014-11-21, 2014-11-23, Нью-Йорк, 150, 250)
Как это сделать?
как проверить наличие дубликата при вставке данных из CSV в базу данных и после того, как найдена повторяющаяся строка, как заменить ее?
Вы могли бы использовать конкретные MySQL замещать
REPLACE работает точно так же, как INSERT, за исключением того, что если старая строка в
таблица имеет то же значение, что и новая строка для PRIMARY KEY или UNIQUE
Индекс, старая строка удаляется перед вставкой новой строки.
Или же Вставить на дубликат, но при таком подходе вы должны перечислить все свои поля.
Других решений пока нет …