[FUG-BR] (Off-Topic) Dúvida MySQL

Joao Rocha Braga Filho goffredo em gmail.com
Sexta Junho 1 22:43:58 BRT 2007


On 6/1/07, Rodrigo Lorenz <lorenzhills at gmail.com> wrote:
> Saudações pessoal,
>
>             Vou fazer a atualização de um servidor de e-mail com Qmail
> e estou usando vpopmail + mysql. Na presente instalação os
> domínios/usuários ficam dentro de /home/vpopmail/domains, portando a
> saída do SELECT na coluna pw_dir da tabela vpopmail fica assim por
> exemplo:
>
> +------------------------------------------------------------------------+
> | pw_dir
>                   |
> +------------------------------------------------------------------------+
> | /home/vpopmail/domains/testando.com.br/postmaster       |
> | /home/vpopmail/domains/testando2.com.br/postmaster     |
> | /home/vpopmail/domains/testando.com.br/megatherion     |
> | /home/vpopmail/domains/testando2.com.br/megatherion   |
> +------------------------------------------------------------------------+
> 4 rows in set (0.00 sec)
>
> Nas ocorrências de "/home/" gostaria de substituir para "/usr/local/".
> Para alterar apenas um registro é fácil usando os comandos UPDATE, SET
> e WHERE, mas para alterar todos registros eu não estou conseguindo, e
> no meu caso são mais de 5.000 registros. Se alguém puder dar uma dica
> de como fazer eu agradeço.
>
> Obrigado a todos pela atenção
>

Eu sei pouco de SQL, mas a sugestão seria um programa para ler todos
os registros, pegando este campo (só ele deve ser o suficiente), Modificando
a string e fazendo um UPDATE.

Sugestõa dois, e talvez mais fácil.

Faça uma query no mysql, salvando o resultado em um arquivo (acho
que opção tee), Depois rode o seguinte script:

uniq < ARQUIVO | sort | uniq | sed 's/\(\/home\)\(.*\)/UPDATE pw_dir
FROM VALUES (\/usr\/local\2) WHERE pw_dir = \'\1\2\';/' | mysql
--user=... --password... banco_de_dados

Nota, acima é uma linha só.

PERIGO!!!!!!!!!!!!!!!!!! Não tenho certeza se toda a sintaxe acima está certa,
então sugiro testar em uma cópia antes.


Boa Sorte,
    João Rocha.


> Rodrigo Lorenz
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>


-- 
"Sempre se apanha mais com as menores besteiras. Experiência própria."

goffredo at goffredo.eti.br
goffredo at gmail.com
http://www.goffredo.eti.br


Mais detalhes sobre a lista de discussão freebsd