Ir para conteúdo

POWERED BY:

Arquivado

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

gustalevin

Pegando caminhos de arquivo e inserindo em uma tabela

Recommended Posts

Olá, Preciso criar uma declaração em MySQL que pegue todos os caminhos de arquivo dos arquivos de uma pasta específica e insira-os numa tabela do MySQL. Por exemplo, se minha pasta se chama "PastaTeste", preciso que na minha tabela tenha algo assim:


C:\PastaTeste\SubPasta1\Arquivo1.pdf


C:\PastaTeste\SubPasta1\Arquivo2.pdf


C:\PastaTeste\SubPasta2\Arquivo3.pdf


C:\PastaTeste\SubPasta3\Arquivo4.pdf


C:\PastaTeste\SubPasta3\Arquivo5.pdf


Tem alguma forma de fazer isso com MySQL? Se não tiver, eu posso exportar uma lista de arquivos da minha PastaTeste pra Excel, por exemplo?


Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer aqui.

Agora, pra terminar, é o seguinte. Tenho três campos nessa tabela que estarão relacionados com esse campo de caminho arquivo. Eles se chamam Descrição, ID_Unidade e ID_Usuario e devem ser preenchidos da seguinte forma, pegando um exemplo:

 

Se no campo caminho_arquivo eu tenho o valor NewIR/Unidade_41/2013/FULANO DE TAL_12345678901.pdf

 

Então eu preciso fazer um UPDATE que coloque nos três campos o seguinte:

 

- Descrição: FULANO DE TAL_12345678901.pdf (ou seja, a parte final do caminho_arquivo)

- ID_Unidade: 41 (o número da unidade. Pode ter mais de dois dígitos em alguns casos)

- ID_Usuario: é um número que será pego de outra tabela onde um dos campos contém valor igual ao da Descrição nessa minha tabela atual.

 

Será que é difícil?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem coisas que é pro banco fazer e outras não.

 

Isso é o tipo de coisa (ler diretórios) que o ideal é ser feito diretamente por programação e passar apenas os parametros para leitura para o banco fazer o import.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já consegui o que eu queria. Agora só falta o seguinte.

 

Precisaria passar os registros dessa tabela Ficheiros pra tabela Documento. Elas possuem os mesmos campos. Mas aí eu não gostaria que na Documento estivessem registros repetidos. Por exemplo, na tabela Ficheiros tem essa linha:

 

ID = 7

Campo1 = Fulano

Campo2 = Ciclano

NomeArquivo = Valor1

ID_User = 200

 

E na Documento essa aqui:

 

ID = 230

Campo1 = Fulano

Campo2 = Ciclano

NomeArquivo = Valor1

ID_User = 200

 

Como são iguais, a exceção do ID, não quero inserir de novo uma linha com os mesmos valores. Como posso fazer? É com EXISTS?

Compartilhar este post


Link para o post
Compartilhar em outros sites

caso haja chave ou constraint de unique (ou possibilidade de crialos) nos campos que sao para serem unicos vc pode usar replace ou insert ignore

 

https://dev.mysql.com/doc/refman/5.5/en/replace.html

http://dev.mysql.com/doc/refman/5.6/en/insert.html

 

o replace substitui e o insert ignore nao ingressa se a chave bater

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.