Поиск…


Синтаксис

  1. LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'имя_файла'
  2. INTO TABLE tbl_name
  3. [CHARACTER SET charset]
  4. [{FIELDS | COLUMNS} [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char']]
  5. [LINES [STARTING BY 'string]] [TERMINATED by' string ']]
  6. [Номер IGNORE {LINES | ЧСТРОК}]
  7. [(Col_name_or_user_var, ...)]
  8. [SET col_name = expr, ...]

используя LOAD DATA INFILE для загрузки большого количества данных в базу данных

Рассмотрим следующий пример, предполагая, что для загрузки в вашу базу данных имеется CS;

1;max;male;manager;12-7-1985
2;jack;male;executive;21-8-1990
.
.
.
1000000;marta;female;accountant;15-6-1992

Создайте таблицу для вставки.

CREATE TABLE `employee` ( `id` INT NOT NULL ,
                          `name` VARCHAR NOT NULL, 
                          `sex` VARCHAR NOT NULL ,
                          `designation` VARCHAR NOT NULL ,
                          `dob` VARCHAR NOT NULL   );                              

Используйте следующий запрос, чтобы вставить значения в эту таблицу.

LOAD DATA INFILE 'path of the file/file_name.txt' 
INTO TABLE employee
FIELDS TERMINATED BY ';' //specify the delimiter separating the values
LINES TERMINATED BY '\r\n'
(id,name,sex,designation,dob)

Рассмотрим случай, когда формат даты является нестандартным.

1;max;male;manager;17-Jan-1985
2;jack;male;executive;01-Feb-1992
.
.
.
1000000;marta;female;accountant;25-Apr-1993

В этом случае вы можете изменить формат столбца dob прежде чем вставлять это.

LOAD DATA INFILE 'path of the file/file_name.txt' 
INTO TABLE employee
FIELDS TERMINATED BY ';' //specify the delimiter separating the values
LINES TERMINATED BY '\r\n'
(id,name,sex,designation,@dob)
SET date = STR_TO_DATE(@date, '%d-%b-%Y');

В этом примере LOAD DATA INFILE не указаны все доступные функции.

Вы можете увидеть больше ссылок на LOAD DATA INFILE здесь .

Импорт CSV-файла в таблицу MySQL

Следующая команда импортирует CSV-файлы в таблицу MySQL с одинаковыми столбцами при соблюдении правил цитирования и экранирования CSV.

load data infile '/tmp/file.csv'
into table my_table
fields terminated by ','
optionally enclosed by '"'
escaped by '"'
lines terminated by '\n'
ignore 1 lines; -- skip the header row

Загружать данные с помощью дубликатов

Если вы используете команду LOAD DATA INFILE для заполнения таблицы существующими данными, вы часто обнаружите, что импорт LOAD DATA INFILE неудачно из-за дубликатов. Существует несколько возможных путей преодоления этой проблемы.

ЛОКАЛЬНЫЕ ДАННЫЕ

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

LOAD DATA LOCAL INFILE 'path of the file/file_name.txt' 
INTO TABLE employee

LOAD DATA INFILE 'fname' REPLACE

Когда используется ключевое слово replace, дубликаты уникальных или первичных ключей приведут к замене существующей строки на новые

LOAD DATA INFILE 'path of the file/file_name.txt' 
REPLACE INTO TABLE employee

LOAD DATA INFILE 'fname' IGNORE

Противоположность REPLACE , существующие строки будут сохранены и новые игнорируются. Такое поведение аналогично LOCAL описанному выше. Однако файл не должен существовать на клиентском компьютере.

LOAD DATA INFILE 'path of the file/file_name.txt' 
IGNORE INTO TABLE employee

Загрузка через посреднический стол

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

INSERT INTO employee SELECT * FROM intermediary WHERE ...

импорт Экспорт

Импортировать

SELECT a,b,c  INTO OUTFILE 'result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM table;

экспорт

LOAD DATA INFILE 'result.txt' INTO TABLE table;


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow