[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