Frequentemente é útil separar determinados dados de uma tabela e levá-los para uma outra – onde poderão ser analisados com maior atenção. Esta segunda tabela, pode ser criada a partir de dados selecionados da primeira e seus dados podem ser submetidos a testes e posteriormente descartados, sem afetar os dados originais.
Você pode usar este recurso em inúmeras situações, inclusive quando deseja evitar que a nova tabela contenha informações sensíveis ou confidenciais, para o uso de outra pessoa ou empresa.
Normalmente, criamos uma nova tabela e, só então, a povoamos com os dados da tabela original, mas isto pode trabalhoso, especialmente se houver muitas colunas envolvidas no processo.
Neste artigo, vou mostrar como inferir a nova estrutura da tabela diretamente de uma declaração SELECT – com os meios que o MySQL já nos oferece.
A sintaxe da declaração é a seguinte:
CREATE TABLE minha_tabela_nova SELECT coluna1, coluna2, coluna4 FROM minha_tabela_original
E isto é tudo.
Como você pode ver, o MySQL vai criar uma nova tabela a partir da estrutura de uma outra, selecionada através do comando SELECT.
Os dados da tabela anterior também serão adicionados, de forma que a nova tabela já “nasce” povoada.
LEIA MAIS:
- Duplicidade de registros – Veja como eliminiar registros duplicados no MySQL
- Variáveis no MySQL – saiba como usá-las
- Comando SELECT – conheça outros exemplos de uso do comando
- Comandos MySQL – conheça outros comandos
O procedimento de criação de tabelas através da declaração SELECT não adiciona os índices, entre outras coisas. Contudo, nada impede que você o faça, em seguida. O trabalho duro, já foi feito.
5 replies on “MySQL: Como criar uma tabela a partir de uma declaração SELECT”
Fantástico!!!!
[…] Crie tabelas a partir de uma declaração SELECT – como criar uma tabela a partir de outra existente […]
Já foi corrigido.
Obrigado! 😉
Agora eu consegui ta errado o codigo ai !!!
O certo é , por ex:
CREATE TABLE minha_tabela_nova SELECT coluna1, coluna2, coluna4 FROM minha_tabela_original
sem a virgula na coluna4 !!!! Arruma isso ai u.u
Não consegui fazer isso.