Обновление таблицы MySQL с использованием файла CSV

моя текущая таблица MySQL employee_data имеет 13k строк с 17 столбцами. Данные в таблице взяты из файла CSV Employees.csv . после импорта данных csv я добавил новый столбец «password» (поэтому его не в файле csv). Пароль редактируется и доступен через веб-портал. Теперь у меня есть обновленный файл csv, и я хочу обновить свою основную таблицу этими данными, но я не хочу потерять информацию о моем пароле.

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

Теперь я понимаю, что должен был хранить информацию о пароле в отдельной таблице. Doh!

Думаю, я мог бы создать файл php, который сравнивает каждую строку на основе поля employee_id, но с 13-килобайтными рядами. Я боюсь, что это возможно.

Я бы сделал это так:

  • Создайте временную таблицу, используя CREATE TABLE new_tbl LIKE orig_tbl; синтаксис
  • используйте LOAD DATA INFILE для импорта данных из CSV в таблицу
  • Используйте UPDATE для обновления первичной таблицы с использованием первичного ключа / уникального столбца (возможно, employee_id )

Я работал с таблицами, содержащими 120 миллионов строк и импортированными CSV-файлами, содержащими 30 миллионов строк, – это метод, который я использую все время – гораздо эффективнее, чем что-либо в PHP (и это мой язык на стороне сервера)

Попробуйте другие инструменты, отличные от php на основе phpMyAdmin MySQL workbench – отличный инструмент, на основе которого вам потребуется некоторое время, чтобы запросить базу данных с вашими данными.
Возможны обходные пути с ограничением тайм-аута php, set_time_limit ();