2011-07-14

Stress com MySQL? Importar dados é fácil

Guarda religiosamente os seus "mysqldumps" de todas as bases de dados e, de repente, precisa de restaurar dados, mas apenas de uma tabela.

Que "galo"!

A primeira reação pode ser abrir o ficheiro do mysqldump num editor de texto e tentar isolar as expressões que reconstroem a tabela.

Uma segunda ideia é mandar uns comandos, tipo cat, head, tail, grep até conseguir ter um ficheiro só com o que lhe interessa.

Há também uma terceira via: o comando mysqldump, que exporta a base de dados em expressões sql, pode ser usado apenas para uma tabela:

mysqldump -u root -p NOMEDABD NOMEDATABELA > dump_tabela.sql

Depois é só entrar no cliente de mysql e fazer:

use NOMEDABD
source /caminho/para/dump_tabela.sql

Era fácil - normalmente usava isto para exportar bd inteiras mas, acrescentando o nome da tabela à frente do nome da bd, temos o resultado pretendido.

Junte a isto alguns comandos mysql que ajudam a filtrar dados:

Copiar tabela (apenas estrutura):

create table NOMEDATABELA like NOMEDETABELAEXISTENTE;

Criar tabela a partir do resultado de uma consulta:

create table NOMEDATABELA select * from OUTRATABELA where ID > 200;

Copiar mantendo definições extra (como auto_increment):

create table NOMEDATABELA (id int unsigned auto_increment primary key) select OUTRATABELA.nome, OUTRATABELA.morada, OUTRATABELA.telefone from OUTRATABELA;

Sem comentários:

Enviar um comentário