Estou importando alguns dados de 20.000 linhas de um arquivo CSV para o Mysql.
As colunas no CSV estão em uma ordem diferente das colunas da tabela do MySQL. Como atribuir automaticamente colunas correspondentes às colunas da tabela Mysql?
Quando eu executo
LOAD DATA INFILE'abc.csv' INTO TABLE abc
esta consulta adiciona todos os dados à primeira coluna.
Por favor, sugira sintaxe automática para importar dados para o Mysql.
mysql
csv
import
load-data-infile
MANJEET
fonte
fonte
Respostas:
Você pode usar LOAD DATA INFILE comando para importar o arquivo csv para a tabela.
Verifique neste link MySQL - LOAD DATA INFILE .
Para usuários do MySQL 8.0:
O uso da
LOCAL
palavra - chave contém riscos de segurança e, a partir do MySQL 8.0, oLOCAL
recurso é definido comoFalse
padrão. Você pode ver o erro:Você pode substituí-lo seguindo as instruções nos documentos . Esteja ciente de que essa substituição não resolve o problema de segurança, mas apenas reconhece que você está ciente e disposto a correr o risco.
fonte
IGNORE 1 LINES
exatamente faz aqui? Desde já, obrigado.Você provavelmente precisará definir o
FIELDS TERMINATED BY ','
ou qualquer outro delimitador.Para um arquivo CSV, sua declaração deve ser assim:
fonte
Antes de importar o arquivo, você deve preparar o seguinte:
Suponha que temos a seguinte tabela:
CRIAR TABELA USANDO A SEGUINTE CONSULTA:
Se tudo estiver bem ... Execute a seguinte consulta para CARREGAR DADOS DO ARQUIVO CSV:
Se tudo estiver feito. você exportou dados de CSV para a tabela com sucesso
fonte
Sintaxe:
Veja este exemplo:
fonte
Insira em massa mais de 7000000 registro em 1 minuto no banco de dados (consulta super rápida com cálculo)
RRP e RRP_nl e RRP_bl não estão em csv, mas somos calculados e depois inserimos isso.
fonte
Se você estiver executando a
LOAD DATA LOCAL INFILE
partir do shell do Windows e precisar usarOPTIONALLY ENCLOSED BY '"'
, você terá que fazer algo assim para escapar os caracteres corretamente:fonte
vamos supor que você esteja usando xampp e phpmyadmin
você tem o nome do arquivo 'ratings.txt', o nome da tabela 'avaliações' e o nome do banco de dados 'filmes'
se o seu xampp estiver instalado em "C: \ xampp \"
copie seu arquivo "ratings.txt" na pasta "C: \ xampp \ mysql \ data \ movies"
Espero que isso possa ajudá-lo a omitir seu erro se você estiver fazendo isso no localhost
fonte
Você pode carregar dados de um arquivo csv ou de texto. Se você tiver um arquivo de texto com registros de uma tabela, poderá carregar esses registros dentro da tabela. Por exemplo, se você tiver um arquivo de texto, onde cada linha é um registro com os valores de cada coluna, você pode carregar os registros desta forma.
table.sql
table.txt
--exemplo em janelas
fonte
Eu estava recebendo o código de erro: 1290. O servidor MySQL está sendo executado com a opção --secure-file-priv, por isso não pode executar esta instrução
Isso funcionou para mim no Windows 8.1 de 64 bits usando wampserver 3.0.6 de 64 bits.
Arquivo my.ini editado de C: \ wamp64 \ bin \ mysql \ mysql5.7.14
Exclua a entrada secure_file_priv c: \ wamp64 \ tmp \ (ou qualquer diretório que você tenha aqui)
Parou tudo -exit wamp etc.- e reiniciou tudo; então punt meu arquivo cvs em C: \ wamp64 \ bin \ mysql \ mysql5.7.14 \ data \ u242349266_recur (o último dir sendo meu nome de banco de dados)
executado LOAD DATA INFILE 'myfile.csv'
INTO TABLE ex-alunos
CAMPOS TERMINADOS POR ','
CERCADO POR '"'
LINHAS TERMINADAS POR '\ r \ n'
IGNORE 1 LINHAS
... e VOILA !!!
fonte
Você pode tentar inserir assim:
fonte
Por estes dias (terminando em 2019) eu prefiro usar uma ferramenta como http://www.convertcsv.com/csv-to-sql.htm Se você tem muitas linhas, pode executar blocos particionados evitando erros do usuário quando o csv vem uma planilha de usuário final.
fonte