Обновление данных с помощью оператора LOAD DATA INFILE

280
25 августа 2021, 21:00

Нужно реализовать добавление и если значения полей одинаковые, замену данных с помощью оператора LOAD DATA INFILE. Пробовал таким способом, но в итоге данные из файла просто добавляются.

LOAD DATA LOCAL INFILE '/home/centos/logs.txt' 
REPLACE INTO TABLE LOGS.access_logs 
FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n'

То есть, например, есть таблица:

Имя    | Фамилия
Саша   | Александров
Павел  | Сергеев

И есть файл с таким содержанием:

Саша   | Александров
Павел  | Сергеев
Андрей | Андреев

В результате, после выполнении запроса табличка должна стать такой:

Имя    | Фамилия
Саша   | Александров
Павел  | Сергеев
Андрей | Андреев

Можно ли с помощью LOAD DATA INFILE реализовать это? Спасибо.

Answer 1

Как нас учит RTFM, действие модификатора REPLACE распространяется исключительно на встречающиеся дубликаты первичных или уникальных индексов:

The REPLACE and IGNORE modifiers control handling of input rows that duplicate existing rows on unique key values: If you specify REPLACE, input rows replace existing rows. In other words, rows that have the same value for a primary key or unique index as an existing row. See Section 13.2.9, “REPLACE Syntax”.

Что в переводе на русский означает:

Модификаторы REPLACE и IGNORE управляют обработкой входных строк, которые дублируют существующие строки с уникальными значениями ключа: Если вы укажете REPLACE, входные строки заменят существующие. Другими словами, строки, которые имеют то же значение для первичного ключа или уникального индекса, что и существующая строка. См. Раздел 13.2.9, «Синтаксис REPLACE».

CREATE TABLE Вы не привели, но исходя из

Пробовал таким способом, но в итоге данные из файла просто добавляются.

можно заключить, что ни первичного, ни уникального индекса Вы для этой таблицы не построили.

READ ALSO
Ошибка при php авторизации

Ошибка при php авторизации

делаю авторизацию на сайте по урокам Хауди-хоВроде сделал всё правильно, но выдаёт ошибку

200
JSON DECODE PHP

JSON DECODE PHP

Как записать в файл нужный элемент массива из JSON строки ? Существует некоторый POST JSON от некоторого сервера:

134
Установить в input current->name а в value current->id

Установить в input current->name а в value current->id

Всем привет, подскажите пожалуйстаУ меня есть выпадающий список в котором сейчас при выборе элемента устанавливается его Имя + в value тоже...

99