моя текущая таблица 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 ();