Qual é a maneira mais fácil de importar uma nova tabela em MySQL v5 de CSV?

StackOverflow https://stackoverflow.com/questions/156994

  •  03-07-2019
  •  | 
  •  

Pergunta

Estou correndo MySQL 5 em um servidor linux na minha rede local. janelas rodando o XP para o meu desktop. Tinha um olhar para os MySQL GUI Tools mas eu não acho que ajuda . Não consigo instalar o apache no servidor e usar algo remoto como phpMyAdmin.

Foi útil?

Solução

Eu uso SQLyog no meu sistema Windows, que tem uma Community Edition gratuita e tem uma opção para a importação de CSV.

Eu nunca usei essa opção mim para que eu não posso te dizer o quão bom ele é. No entanto, SQLyog tem sido ótimo para todas as outras coisas que eu usei-o para.

Outras dicas

A partir do shell MySQL ou consulta navegador ...

Se o CSV não tem cabeçalho:

LOAD DATA INFILE 'mycsvfile.csv' INTO TABLE mytable;

Se o CSV tem um cabeçalho:

LOAD DATA INFILE 'mycsvfile.csv' INTO TABLE mytable IGNORE 1 LINES;

Gostaria de usar um editor de planilha para fazer um conjunto de instruções SQL. Coloque uma nova coluna na insert into tablename values(' início e add. Adicionar outras colunas para separar os dados com um código como '','. Termine com '');. Use o recurso de preenchimento automático para arrastar essas células para baixo para tantas linhas quanto necessário. Copie a folha inteira para um editor de texto simples e remover as guias em excesso, deixando-o com um simples conjunto de instruções de inserção.

Esta é uma solução que eu posso usar para qualquer sistema de banco de dados e qualquer formato de arquivo de planilha. Além disso, é fácil de preencher a planilha de fontes como outros bancos de dados, ou copiando e colando a partir de uma página web. Também é bastante rápido e disponível a partir de qualquer máquina desktop, usando o Excel, OpenOffice ou o Google Docs.

Veja o meu exemplo de planilha em Excel e noreferrer versões do OpenOffice .

Eu apenas fiz isso usando LOAD DATA INFILE mas é importante notar que não é tão simples como o exemplo de Gareth (Kai é muito justo que você deve olhar para a documentação ). Para valores separados por vírgula corretamente importação, eu usei isso:

LOAD DATA LOCAL INFILE 'mycsvfile.csv' INTO TABLE mytable 
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;

Isso pressupõe um arquivo CSV com aspas em torno de cada campo e uma única linha de cabeçalho no topo. (Você provavelmente não precisa o LINES TERMINATED BY uma vez que deve ser o padrão, mas é uma boa prática para ser explícito.)

A aplicação Sapo faz maravilhas e é gratuito. Se você tem um arquivo CSV adequada, ele irá criar a tabela e importar todos os dados para você.

Escrever um simples script Python que analisa o CSV e insere-o na tabela.

Olhe para o CSV e mysqldb módulo.

Se você não se importa com um pouco de software comercial, então Navicat ( http://mysql.navicat.com / ) é um pouco muito útil de software e está disponível para Mac, Windows, Linux. Eu usá-lo regularmente para importar um arquivo CSV grande em um banco de dados.

sapo para MySQL vai fazer isso muito bem, com considerável controlo sobre a importação (correspondentes selectivamente por exemplo) e mais duradoura é grátis.

Eu também usei SQLyog, mas você tem que ter a versão comercial para este como a importação de arquivo não está disponível na edição da comunidade.

Toad é uma excelente pouco de software que vem em versões para todos os principais bancos de dados e eu usei ambas as versões MSSQL e Oracle no passado também. Recomendado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top