У меня есть несколько файлов CSV, которые я хочу загрузить в свою базу данных, но файл CSV содержит еще много столбцов, чем в моей базе данных. Как я импортирую только выбранные столбцы из файла CSV в мою базу данных?
Для пользы аргументов скажем, CSV содержит строку заголовка с заголовками столбцов от A до Z и затем два миллиона строк со значениями для столбцов A to Z. Скажем, моя таблица myTest содержит B, N и S, таким образом, я только хочу импортировать столбец B, N и S из файла CSV в myTest.
Я планировал сделать:
mysqlimport --local --columns=B,N,S --ignore-lines=1 --delete --default-character-set=latin1 --fields-optionally-enclosed-by=\" --fields-terminated-by=\, --lines-terminated-by=\r\n myDb myTest.csv
Но это заполняет строку B, N и S со значениями столбца A, B и C, не со значениями столбца B, N и S как, я хотел.
Какие-либо предложения, как я могу заставить его импортировать только B, N и S?
Вам необходимо изменить - columns = B, N, S
и добавить параметры, чтобы пропустить все столбцы, которые вам не нужны.
Например, чтобы использовать 1-й, 4-й и 7-й столбцы, используйте:
--columns=B,@x,@x,N,@x,@x,S
Это отправит 2-й, 3-й, 5-й и 6-й столбцы в параметр @x.
Ссылка: http://dev.mysql.com/doc/refman/5.1/en/mysqlimport.html