Pular para o conteúdo

MySQL: Duplicando uma tabela com apenas 1 comando SQL

Dica publicada em Banco de Dados / MySQL
Fábio Berbert de Paula fabio
Hits: 93.552 Categoria: Banco de Dados Subcategoria: MySQL
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

MySQL: Duplicando uma tabela com apenas 1 comando SQL

Duplicar uma tabela no MySQL, mantendo sua estrutura e importando os registros da tabela original, é mais fácil do que eu imaginava.

Hoje precisei fazer isso e uma rápida googlada me levou até: SQL COPY MySQL TABLE with structure and records.

Sem mais delongas, no console de seu MySQL digite a seguinte query:

CREATE TABLE novaTabela SELECT * FROM tabelaPai;
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Simples assim!

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Como executar seu código-fonte a partir do Vim

Como instalar o Postman no Debian e derivados

Como reiniciar o USB sem tirar o cabo

Como passar parâmetros para um alias no Bash

Remote Transmission - Gerenciando os torrents do PC pelo Android

Redefinindo a senha de root no MySQL (sem saber a atual)

ERROR 1045 (28000) no MySQL 5 - Ubuntu 6.06

Erro ao conectar no servidor MySQL

Exportando uma tabela do MySQL

Access denied for user 'root'@'localhost' no MySQL Server Community 5.7 [Resolvido] - CentOS7 x86_64

#1 Comentário enviado por julianometal em 22/03/2010 - 12:11h
Boa dica para quando precisamos criar outra tabela a partir de uma outra copiando sua estrutura e seus registros.
Vou acrescentar aqui, se este comando fosse no Postgres só teria uma palavrinha a mais:

CREATE TABLE novaTabela AS SELECT * FROM tabelaPai;
#2 Comentário enviado por gianclaudio em 27/04/2010 - 19:10h
Olá a todos.

Na verdade, aqui o resultado não foi exatamente o esperado.
Ele criou a tabela nova e copiou todos os registros porém não definiu a chave primária, índices nem autoincremento.
Pra resolver, quase tão fácil quanto o proposto acima:

CREATE TABLE nova_tabela LIKE tabela_antiga;
INSERT INTO nova_tabela SELECT * FROM tabela_antiga;

Deste modo, a tabela é criada fielmente com índices, autoincremento etc e todos os registros copiados.
Lembrando que o SELECT pode ter filtros normalmente, podendo selecionar os registros que irão para a nova tabela.

Abração
#3 Comentário enviado por pethros em 31/12/2012 - 10:03h
Muito Obrigado!
#4 Comentário enviado por miqueloti em 19/08/2014 - 17:16h
Valeu!

Contribuir com comentário

Entre na sua conta para comentar.