Copiar uma tabela MySQL existente para uma nova tabela

Quarta-feira, 27 de Junho de 2012

mysql logo

Imagine-se o seguinte cenário. Na base dados empresa tem-se a tabela clientes que se pretende copiar para uma nova tabela, numa outra base dados já existente, tudo no mesmo servidor. Esta nova tabela será chamada de clientes_nova e será criada na base dados testes. Para isso, usam-se os dois comandos seguintes:

CREATE TABLE testes.clientes_nova LIKE empresa.clientes;
INSERT testes.clientes_nova SELECT * FROM empresa.clientes;

O primeiro comando cria a nova tabela clientes_nova com base na tabela existente clientes, incluindo os índices (em versões do MySQL 4.X ou inferiores os índices não são copiados). O segundo copia os dados da tabela antiga para a nova.

De notar que nos comando acima foi usado sempre a nomenclatura BASE_DADOS.TABELA para indicar as bases de dados de origem e destino das tabelas. A indicação da base dada é opcional. A não indicação faz com que o MySQL assuma que as tabelas estejam na base dados previamente seleciona.

FONTES:
- http://www.tech-recipes.com/rx/1487/copy-an-existing-mysql-table-to-a-new-table/