Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lipe760

"Tradução" do comando SQL para Importação de um arquivo CSV

Recommended Posts

LOAD DATA LOCAL INFILE  '/tmp/phpVJosRc' REPLACE INTO TABLE  `solicitacoes` 
FIELDS TERMINATED BY  ';'
ENCLOSED BY  '"'
ESCAPED BY  '\\'
LINES TERMINATED BY  '\r\n'# 8318 linha(s) afectadas.

 

Galera,

 

alguém pode traduzir, minuciosamente, o que ocorre em cada linha deste comando SQL?Nele é feito uma importação de um arquivo CSV pela interface do phpmyadmin.

 

O mysql é de uma empresa de host.

O arquivo está no meu computador.

 

Não entendi o endereço '/tmp/phpVJosRc' .

 

 

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

o endereço "estranho" é o path temporário do arquivo enviado (upload)...

 

só isso

 

hinom, entendi.

Obrigado!

 

O objetivo de entender essa query, seria por uma condição(WHERE) no ato do REPLACE.

 

93988355;02.01.2014;ARMINDA FRANCISCA RODRIGUES ALEVATTO;(21) xxxx-xxxx;GRUPO - EXAMES ULTRA-SONOGRAFICOS;Policlinica Joao Macedo;---;---;Pendente
94014891;02.01.2014;FILIPE DIOGO DA SILVA;(21) xxxx-xxxx;ELETRONEUROMIOGRAFIA;Policlinica Joao Macedo;---;---;Pendente
93986585;02.01.2014;ILMA SENDRA DE FREITAS;(21) xxxx-xxxx;GRUPO - PROCEDIMENTOS AMBULATORIAIS EM OFTALMOLOGIA;Policlinica Joao Macedo;---;---;Pendente

Imagino assim:

 

LOAD DATA LOCAL INFILE  '/tmp/phpVJosRc' REPLACE INTO TABLE  `solicitacoes`
WHERE `sol_status` != 'ultimo valor da linha no arquivo csv, que é Pendente'
FIELDS TERMINATED BY  ';'
ENCLOSED BY  '"'
ESCAPED BY  '\\'
LINES TERMINATED BY  '\r\n'# 8318 linha(s) afectadas.

Ou seja, só sob-escrever se o status for diferente do atual recebido.

 

Mas a minha dificuldade é descrever o que vejo no arquivo para passar ao mysql.

 

Sei que no arquivo é o último campo

 

Primeiramente, é possível essa condição que eu tentei descrever?

Como passo essa instrução?

Há algum material sugerido para eu ler?

 

Obrigado pela atenção e paciência!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O upload é feito pela interface do phpmyadmin. Mas farei pelo sql, para personaliza-lo com a condição mencionada, que é a intenção. Por isso pedi ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desconheço função no MySL que faça isso.

Na documentação não tem nada relacionado a manipulação dos dados carregados pelo LOAD DATA.

 

Seria mais prático fazer upload por uma interface na qual já faça a filtragem

ou melhor, o programa que gera esse arquivo, salvar de modo adequado.

 

Enfim, há varios meios, mas da forma como pretende, segundo o que descreveu nos posts acima, eu desaconselho..

 

Se quiser mesmo prosseguir dessa forma, o que poderia fazer é gravar esse dados numa tabela espelho da original.

Então após completar a execução, executaria uma função para remover os que vc não desejar.. Aí sim, no SQL fica fácil..

Terminando isso, a função completaria com o REPLACE dos dados que sobraram para a tabela original..

É uma solução bem tosca, mas funcionaria... rsrsr

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.