Есть ли способ перезаписать таблицу с помощью LOAD DATA LOCAL INFILE? - PullRequest
0 голосов
/ 01 марта 2020

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

Является ли единственным решением для TRUNCATE таблицы и затем используется LOAD DATA INFILE запросов?

1 Ответ

2 голосов
/ 01 марта 2020

Если у вас есть первичный ключ, вы можете использовать REPLACE. В документации указано:

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

  • Если вы укажите REPLACE, входные строки заменят существующие строки. Другими словами, строки, которые имеют то же значение для первичного ключа или уникального индекса, что и существующая строка. См. Раздел 13.2.9, «Оператор ЗАМЕНЫ».

Однако, если вы хотите заменить существующую таблицу, сначала обрежьте таблицу, а затем загрузите.

...