Syntax
usando LOAD DATA INFILE para carregar grande quantidade de dados para a base de dados
Consulte o seguinte exemplo assumindo que tem um ‘;’-cV limitado para carregar na sua base de dados.
1;max;male;manager;12-7-19852;jack;male;executive;21-8-1990...1000000;marta;female;accountant;15-6-1992
Criar a tabela para inserção.
Utilize a seguinte consulta para inserir os valores nessa tabela.
considere o caso em que o formato da data não é padrão.
1;max;male;manager;17-Jan-19852;jack;male;executive;01-Feb-1992...1000000;marta;female;accountant;25-Apr-1993
Neste caso pode alterar o formato da coluna dob
antes de inserir desta forma.
Este exemplo de LOAD DATA INFILE não especifica todas as características disponíveis.
P>Pode ver mais referências em LOAD DATA INFILE aqui.
Importar um ficheiro CSV para uma tabela MySQL
O comando seguinte importa ficheiros CSV para uma tabela MySQL com as mesmas colunas, respeitando as regras de citação e escape CSV.
Carregar dados com duplicados
Se utilizar o comando LOAD DATA INFILE
para preencher uma tabela com dados existentes, verificará frequentemente que a importação falha devido a duplicados. Há várias maneiras possíveis de ultrapassar este problema.
Se esta opção tiver sido activada no seu servidor, pode ser usada para carregar um ficheiro que existe no computador cliente e não no servidor. Um efeito secundário é que as filas duplicadas para valores únicos são ignoradas.
LOAD DATA LOCAL INFILE 'path of the file/file_name.txt' INTO TABLE employee
LOAD DATA INFILE ‘fname’ REPLACE
Quando a palavra-chave de substituição for utilizada, as chaves duplicadas únicas ou primárias resultarão na linha existente a ser substituída por novas
LOAD DATA INFILE 'path of the file/file_name.txt' REPLACE INTO TABLE employee
LOAD DATA INFILE ‘fname’ IGNORE
O oposto de REPLACE
, As linhas existentes serão preservadas e as novas linhas ignoradas. Este comportamento é semelhante a LOCAL
descrito acima. Contudo, o ficheiro não precisa de existir no computador cliente.
LOAD DATA INFILE 'path of the file/file_name.txt' IGNORE INTO TABLE employee
Load via tabela intermediária
Por vezes ignorar ou substituir todas as duplicações pode não ser a opção ideal. Pode ser necessário tomar decisões com base no conteúdo de outras colunas. Nesse caso, a melhor opção é carregar para uma tabela intermediária e transferir de lá.
INSERT INTO employee SELECT * FROM intermediary WHERE ...
importar / exportar
importar
SELECT a,b,c INTO OUTFILE 'result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM table;
Exportar
LOAD DATA INFILE 'result.txt' INTO TABLE table;